第一章
模块
- 载入:
import math
- 调用:
math.floor
- 去掉模块名字:
from math import floor
- 调用:
floor
- 换个名字:
myfloor = math.floor
调用:
myfloor(2.2)
为了避免名字冲突,应尽量使用普通的import
python环境
#!/usr/bin/env python
注释
- ‘#’
输入
input
输入合法表达式raw_input
输入都当字符串
换行
\
第二章 列表和元组
列表[]可以修改,元组()不可以
索引
>=0
正数,<=-1
倒数- 分段,末尾留空
str[-4:]
- list 化为列表,’’.join 化为字符串,字符串不能直接修改
- lst.append 增加一个列表元素;lst.count计算列表中某元素个数;lst.extend增加一个列表
- lst.index找到元素第一次出现位置,lst.insert, lst.pop
- lst.remove 删除第一个出现,lst.reverse
- 复制列表用y=x[:],y=x使得y与x指向同一个列表
- tuple将序列转换为元组
- 元组主要用于当键,因其不可修改
第三章 字符串
1 | format = '1.%s 2.%s' |
- str.find 找不到返回-1, 而lst中index找不到报错
- str.lower
- str.replace
- str.split 是join的逆方法,可能会分出空
- str.translate 字符映射 ,用maketrans制作映射表
字典{}
- len(d),d[k],del d[k], k in d
- 建立:
d={}
d['wang']=1
- 格式化:
"wang :%(wang)s kang %(kang)s" % d
- clear
注意如下代码,xy指向同一个字典,x
1 | x = {} |
- copy
- get(key,default_value) 访问没有的key不会报错,返回default_value
- update
第五章 条件 循环
import特性
from m import func1, func2
from m import *
import m as x
m的别名
赋值
x,y,z=1,2,3
x,y=y,x
交换x+=1,x-=2
条件
False,None,0,"",(),[],{}
为假1<a<3
语句块
begin with
:
1
2
3
4
5
6#!/usr/bin/env python
name = raw_input()
if name.endswith('a'):
print 'have a'
else:
print 'not a'is
表示统一性,必须指向同一个东西,并不止对比值相同1
2
3
4
5
6
7
8
9
10
11
12
13
141,2,3] x=[
y = x;
is y x
True
z = x[:]
x
[1, 2, 3]
z
[1, 2, 3]
is x z
False
z = y
is x z
True
断言
assert
成功没事,不成功报错程序结束
for while
range
设定范围xrange
不一下创建整个范围序列for i in s
while i <3
- 迭代字典。
for k in d; for k in d.keys(); for k,v in d.items()
- zip 将两个序列合在一起
for k,v in zip(a,b)
pass
占位符,python中不允许空的代码块
列表推导式
[x*x for x in range(4)]
del,exec,eval
- x=y, del y, x还存在。记住就行,只是删除了名字
- exec 执行python代码,eval计算python表达式。
第六章 抽象
定义函数
1 | def myadd(a,b): |
关键字参数
1 | def f(a,b): |
参数收集
f(*param)
处理多个普通参数,保存为元组f(**param)
处理多个关键字参数,保存为字典
作用域
x=2实质为建立了x和1的字典
s = vars();返回的是当前作用域下的字典
1 | s |
引用全局变量,global
第七章 类和继承
1 | #!/usr/bin/env python |
内部默认是共有,私有需要加__
1 | #!/usr/bin/env python |
第八章 异常
raise Exception()
1 | try: |
捕获多个异常1
exception (exceptionA,B,C)
保存异常对象1
2except Exception , e: #python2
except Exception as e : #pyton3
扑捉所有异常1
2
3
4try :
except :
else :
finally: #不管发不发生异常都会执行
第九章 类
构造函数
1 | class A: |
析构函数
__del__
,在垃圾回收之前调用,但具体时间不可知,建议不要用
子类不会主动调用父类的构造函数,需要手动:
1 | class A : |
属性
1 | class A: |
重写计数
1 | class plist(list): |
property函数
有4个参数fget,fset,fdel,doc
1 | class A: |
静态方法和类成员方法
1 | class A: |
迭代器
1 | class A: |
生成器
1 | def ft(nested): |
第十章 模块
设置模块搜索路径import sys
and sys.path.append('')
模块可以是一个文件,包是一个目录,其中有__init__.py
文件
1 | import copy |
第十一章 文件和流
r+ 以读写方式打开文件,文件可读可写,可写到文件的任何位置。通过seek来定位。
a+ 以追加方式读写文件,a+ 和r+不同的是,它只能写到文件末尾
w+ 和r+不同的是,它会先清空文件。
sys.stdin 标准读入 input 和 raw_input也是在stdin中
sys.stdout 标准输出
sys.stderr
1 | #!/usr/bin/env python |