首页 > 代码库 > Python学习笔记
Python学习笔记
说明,该笔记不只是用来记录知识点,如果看完都知道在说什么,那就OK了,如果看了不知道写的什么,那就复习下。
1、代码注释用"#"号
2、print用逗号","隔开
3、格式化字符串:
eyes=‘Blue‘
hair=‘Brown‘
print "He‘s got %s eyes and %s hair" %(eyes,hair)
4、print "."*10 #打印10个"."
5、自适应格式化%r
6、print "How old are you?", #最尾的逗号使print输出换行
age = raw_input()
7、上例可以直接写成:
age=raw_input("How old are you?")
8、三个引号"""可以定义多行字符串
9、传入参数:
假设py文件名是ex20.py,内容如下
from sys import argv
script, input_file = argv
...
则运行 python ex20.py text.txt
script等于ex20.py, input_file等于text.txt
10、文件操作
close,read,readline,truncate,write
11、函数:
def print_two(*args):
arg1,arg2=args
print arg1,arg2
12、条件语句
if a>b:
print "a>b"
13、循环语句
the_count=[1,2,3,4,5]
for num in the_count:
print "num = %d"%num
14、while i<b:
print "i=%d"%i
i=i+1
15、字典容器(可以认为是C++里面的map)
stuff={‘name‘:‘Zed‘,‘age‘:36}
print stuff[‘name‘]
16、字典容器可以放函数
def fm(x,y):
....
fun_map = {‘fun‘:‘xxx‘} #这句没什么意义
fun_map[‘my_fun‘] = fm
fun_map[‘my_fun‘] (x,y) #相当于调用fm函数
17、更灵活的循环
1)for (index,char) in enumerate(s):
print index,char #同时得到下标和元素
2)for (a,b,c) in zip(ta,tb,tc):
print (a,b,c)
18、yield应用,例子:
def fab(max):
n,a,b = 0,0,1
while n<max:
yield b
a,b=b,a+b
n=n+1
for n in fab(3):
print n
1
1
2
yield作用其实是将一个函数变成一个generator,调fab(3)其实是返回了一个iterable对象
19、map()函数
re=map((lambda x:x+3),[1,3,5,6]) #结果[4,6,8,9]
re=map((lambda x,y:x+y),[1,2,3],[6,7,9]) #结果 [7,9,12]
20、filter函数
def func(a):
if a>10:
return True
return False
filter(func,[2,100,32,9]) #结果[100,32]
21、reduce函数
reduce((lambda x,y:x+y),[1,2,3,4]) #结果10
22、异常处理
try:
xxx
except xxx:
xxx:
except xxx:
xxx:
else:
xxx
finally: #不管是否有异常,最后都要做的事情
xxx
23、Python标准库
第一类 Python增强
1)文字处理 string,re(正则表达式)
2)数据对象,各种数据类型
3)日期时间 time时间 datetime日期
4)数学运算decimal,fractions,random,match
5)存储 实际上Python可以输入输出任意对象,这些对象可以通过pickle包转成二进制格式,存于文件中,也可以反向对其读取
sqlite3 XML csv有对应包
第二类 系统互动
1)Python运行控制
2)操作系统
3)线程和进程
第三类 网络
1)socket
2)http等
24、序列方法 tuple,list,string都是序列
len(s) min(s) max(s)
all(s) #如果所有元素都为True,则返回True
any(s) #如任一元素为True,则返回True
sum(s) #返回所有元素的和,但不用于string
s.count(x) #x在s中出现的次数
s.index(x) #x在s中第一次出现的位置
l.extend(l2) l.append(x) l.sort()排序 l.reverse()逆序 l.pop() del l[i]
25、datetime
可以运算比较
与字符串转换:
format = "ot-%Y-%m-%d-%H%M%S.txt"
str = "ot-1997-12-23-030000.txt"
t=datetime.strptime(str,format)
反过来:strftime(format)
26、路径和文件
os.path glob 路径处理,很丰富 glob则主要等同于ls命令
27、subprocess包 用于执行外部命令和程序
功能与shell类似
call check_call check_output
Repen PIPE.Popen.wait Popen.communicate
可以极大的扩展Python功能,通过调用外部应用,并将应用结果输出给Python,并让Python继续处理
28、多线程
threading Thread
29、多进程
multiprocessing Process
进程池
30、数学包
math random
31、socket HTTP
一个简单的HTTP Server端很容易实现,搜Vamei博客,例子很清晰明了
32、技巧
1)用__name__,__name__=‘__main__‘跳过测试语句
2)python -i test.py 运行完进入命苦行
33、with...as...例子
f=open("new.txt","w")
f.closed()
f.close()
等同于:
with open("new.txt","w") as f:
f.closed() #返回是否关闭
#出了with...as...会自己关f
34、对象的属性 __dict__
bird.__dict__ #查bird的属性对
35、Python支持生成即时属性
class chicken(bird)
fly=False
def __init__(self,age):
self.age=age
def getAdult(self):
if self.age>1.0:return True
else:return False
adult=property(getAdult)
还可以:
@property
def getAdult(self):
.....
36、函数装饰器 注,函数装饰器还可以带参数
def dec(F):
def nF(a,b):
print ("input",a,b)
return F(a,b)
return nF
@dec
def addc(a,b):
return a+b
37、还有装饰类,与装饰函数类似的应用
Python学习笔记