首页 > 代码库 > Python学习第一天

Python学习第一天

Python简介

  请自行百度

Python版本

  CPython、JPython...具体介绍请百度

Python应用

  Web Programming:Django,Pyramid,Bottle,Tornado,Flask,Web2py

  GUI Development:wxPython,tkinter,PyGtk,PyGObject,PyQt

  Scientific and Numeric:SciPy,Pandas,IPython

  Software Development:Buildbot,Trac,Roundup

  System Administration:Ansible,Salt,OpenStack

Windows使用环境

  使用Python2.7和Python3.5版本,课程以Python3为主。

  下载Python2.7和3.0安装并配置环境变量

  IDE使用pycharm

Python解释器执行的步骤

  加载内存、语法分析、编译变成字节码,执行字节码,内存读取字节码,内存将字节码转换成机器码。

Python2.x和3.x常用语法不同之处

  Python3默认编码为unicode,不再出现Python2中因编码问题出现的bug。

  Old:raw_input        input

  New:input()          eval(input())

  Old:print

  New:print()      print("",end="")

  input()==eval(input)#左边是python2写法,右边是python3写法

  raw_input()==input()#左边是python2写法,右边是python3写法

数据类型分为两部分:

1、  单值

  数字

           整型

           长整型

           浮点型

           复数

  布尔值 True(1),False(0)

  字符串

2、  集合

  列表

  元祖

  字典

  Set哈希表

 变量命名规则

   1、变量名只能是字母、数字或下划线的任意组合;变量名第一个字符不能是数字;变量名命名不能使用关键字。

    如: [‘and‘,‘int‘,‘str‘]...

 变量与赋值

  赋值传参:将右边的参数赋值给左边的名称,名称为后期程序调用。

  字符串需要加引号引起来,数字则不加引号

变量

#!/uer/bin/env python3
>>> name = "张三"#字符串需要用引号引起来
>>> age = 22 #数字不需要加引号
>>> print(name,age)
张三 22
>>> name = zhangsan  #不加引号报错
Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    name = zhangsan
NameError: name ‘zhangsan‘ is not defined

id()    id用于查看变量内存地址是否一致

>>> a = 3
>>> b = a #内存中b指向3
>>> a = 5
>>> print(a,b)
(5, 3)
>>> a = 3
>>> b = a
>>> id(a);id(b)#内存地址一样
32046816
>>> a = 5
>>> id(a);id(b)#内存地址不一样
32046816

字符串 #不可修改的

字符格式化

#!/usr/bin/env python3
name = input("name:")
age = input("age:")
print("name %s:\nage %s:" % (name,age))

字符串格式符号含义#摘自bbs.fishc.com

符号

说明

%c

格式化字符及其ASCII码

%s

格式字符串

%d

格式化整数

%o

格式化无符号八进制数

%x

格式化无符号十六进制数

%X

格式化无符号十六进制数(大写)

%f

格式化定点数,可指定小数点后的精度

%e

用科学计数法格式化定点数

%E

作用同%e,用科学计数法格式化定点数

%g

根据值的大小决定使用%f或者%e

%G

作用同%g,根据值的大小决定使用%f或者%E

 字符串转义字符含义#摘自bbs.fishc.com

符号

说明

\’

单引号

\”

双引号

\a

发出系统响铃声

\b

退格符

\n

换行符

\t

横向制表符(TAB)

\v

纵向制表符

\r

回车符

\f

换行符

\o

八进制数代表的字符

\x

十六进制数代表的字符

\0

表示一个空字符

\\

反斜杠

 

字符串常用功能:

  移除空白:strip();  lstrip();  rstrip()

  分割:split()   split(‘\t’) 按tab键分割

  长度:len()

  索引:0开始,-1从尾开始

  切片:[0]

列表[] #数据可修改

 列表写法:

  name_list = ["alex","seven","eric"]

  或

  name_list = list(["alex","seven","eric"])

  基本操作:

  索引从0开始负数为-1开始   

  切片[0] 

  包含:in

  长度:len()

  删除: del();  del name_list [0]  

  循环:for

  连接:join ;   ‘_’.join(nam_list)

append追加
>>> name_list = ["alex","65brother","tenglan"]
>>> name_list.append("eric")
>>> name_list
[‘alex‘, ‘65brother‘, ‘tenglan‘, ‘eric‘]
count 统计
>>> name_list
[‘alex‘, ‘65brother‘, ‘tenglan‘, ‘eric‘, ‘65brother‘]
>>> name_list.count("65brother")#统计
extend 扩展
>>> name_list = [‘alex‘, ‘eric‘, ‘jkjl‘, ‘tenglan‘]
>>> name_list.extend(name_list)#一个列表扩展另一个列表
>>> name_list
[‘alex‘, ‘eric‘, ‘jkjl‘, ‘tenglan‘, ‘alex‘, ‘eric‘, ‘jkjl‘, ‘tenglan‘]
>>> name_list.extend(["a","b","c"])#一个列表扩展另一个列表
>>> name_list
[‘alex‘, ‘eric‘, ‘jkjl‘, ‘tenglan‘, ‘a‘, ‘b‘, ‘c‘]
index 索引
>>> name_list
[‘alex‘, ‘65brother‘, ‘tenglan‘, ‘eric‘, ‘65brother‘]
>>> name_list.index("65brother")#索引
insert 插入
>>> name_list
[‘alex‘, ‘65brother‘, ‘tenglan‘, ‘eric‘, ‘65brother‘]
>>> name_list.insert(2,"66brother")#插入指定位置
>>> name_list
[‘alex‘, ‘65brother‘, ‘66brother‘, ‘tenglan‘, ‘eric‘, ‘65brother‘]
pop 删除或接收
>>> name_list
[‘alex‘, ‘65brother‘, ‘66brother‘, ‘tenglan‘, ‘eric‘, ‘65brother‘]
>>> name_list.pop()#删除最后一个
‘65brother‘
>>> name_list.pop(1)#通过下标删除指定值
‘alex‘
>>> name = name_list.pop(-1)#通过下标删除指定值并作赋值
>>> name
‘eric‘
remove 删除指定一个
>>> name_list
[‘alex‘, ‘65brother‘, ‘66brother‘, ‘tenglan‘, ‘eric‘]
name_list.remove("66brother")#删除指定值
>>> name_list
[‘alex‘, ‘65brother‘, ‘tenglan‘, ‘eric‘]
reverse 反转
>>> name_list
[‘alex‘, ‘65brother‘, ‘tenglan‘, ‘eric‘]
>>> name_list.reverse()#反转
>>> name_list
[‘eric‘, ‘tenglan‘, ‘65brother‘, ‘alex‘]
sort 排序
#python3中是按同类型进行排序
>>> name_list
[‘eric‘, ‘tenglan‘, ‘65brother‘, ‘alex‘]
>>> name_list.sort()#排序 
[‘65brother‘, ‘alex‘, ‘eric‘, ‘tenglan‘]
#可通过key来指定排序
>>> name_list
[‘65brother‘, ‘alex‘, 55, ‘eric‘, ‘tenglan‘, 33, 55]
>>> name_list.sort(key=str)#通过key进行排序,详细请用help(list.sort)
>>> name_list
[33, 55, 55, ‘65brother‘, ‘alex‘, ‘eric‘, ‘tenglan‘]
#可以实现反转
>>> name_list.sort(reverse=True,key=str)#reverse默认值是False
>>> name_list
[‘tenglan‘, ‘eric‘, ‘alex‘, ‘65brother‘, 55, 55, 33]

元组 #是只读的

count

>>> name = ("alex","eric",99)
>>> name.count(99)#统计1

index

>>> name = ("alex","eric",99)
>>> name.index(99)#索引2

条件

  条件判断if...else

  缩进为4个空格,或者是一个TAB

if...else

>>> a = 10
>>> b = 20
>>> if a < b:
     print("YES")
else:
     print("NO")
YES

三元运算

>>> a = 10
>>> b = 20
>>> num = a if 1<2 else b#条件为真,值为a
>>> num
>>>num = a if 1>2 else b#条件为假,值为b
>>> num
# 将以下代码转换成三元运算
x, y, z = 6, 5, 4
if x < y:
    small = x
    if z < small:
        small = z
elif y < z:
    small = y
else:
    small = z
print(small)
#转换后
small = x if ((x < y) and (z < x)) else(y if y < z else z)
print(small)

For循环:

>>> name_list = [‘a‘,‘b‘,‘c‘]
>>> for ele in name_list:
    if ele == ‘a‘:
        print(‘a‘)
        continue
    if ele == ‘b‘:
        print(‘b‘)
        break
    
a
b

While 循环:

  While  条件:#条件为真执行

  While True:#切记,容易进入死循环哦!

简单文件操作

打开文件:

  f= open("文件路径",“模式”)

打开模式有:

  r,只读方式打开

  w,打开一个文件只用于写入。如果文件存在则将覆盖原文件,如果该文件不存在,创建文件。

  a ,打开一个文件用于追加。如果该文件已存在,指针指向文件结尾,新内容写到文件后。如果文件不存在,创建文件。

  w+ , 打开一个文件用于写读,如果文件存在将覆盖文件里的内容。如果文件不存在,创建文件并写人内容。

  r+ , 打开一个文件用于读写,可修改文件内容。

文件读取:

  f.read() #读取所有内容到内存

  f.readlines()#读取所有内容到内存,并按换行符分割成列表。

写文件:

  f.write("内容")

  f.writeline()

关闭文件:

  f.close()


Python学习第一天