python里的函数
自定义函数
默认返回None
变量作用域
全局和局部
global
In [10]: def f(step=1): ...: global a ...: a+=step ...: In [11]: a Out[11]: 1 In [12]: f() In [13]: a Out[13]: 2 In [14]: f(2) In [15]: a Out[15]: 4 In [18]: def buy(money,product): ...: print("%d元可以买%s"%(money,product)) ...: In [19]: buy(5,"袜子")
传递多个参数(列表和字典)
In [25]: arg Out[25]: [5, '巧克力'] In [26]: buy(*arg) 5元可以买巧克力 In [31]: d={"money":10,'product':'米线'} In [32]: buy(**d) 10元可以买米线
多参数冗余处理
传值时必须统一,要么全不指定键要么全部指定
def buy(money,product,*arg): print("%d元可以买%s"%(money,product)) print("arg:",arg) buy(1,"花生",'other','other2') buy(product="煎饼",money=10); #buy(product="煎饼",money=10,z='11'); #报错 def buy1(money,product,*arg,**dst): print("%d元可以买%s"%(money,product)) print("arg:",arg) print("dst:",dst) buy1(product="煎饼",money=10,z='11',k=12);
结果
1元可以买花生 arg: ('other', 'other2') 10元可以买煎饼 arg: () 10元可以买煎饼 arg: () dst: {'z': '11', 'k': 12}
类型转化函数
type()
int()
float()
complex()
str()
list()
tuple()
hex()
oct()
chr()
ord()
匿名函数lambda表达式
reduce为逐次操作list里的每项,接收的参数为2个,最后返回的为1个结果
def f(x,y): return x+y from functools import reduce print(reduce(f,[1,2,3,4,5])); print("-----reduce-----") print(reduce(lambda x,y:x+y,[1,2,3])) #6 foo=[0,1,2,3,4,5,6,7,8,9] print("#####filter####") r=filter(lambda x:x%3 == 0 ,foo) print(r); for i in r: print(i) print("----map---") m=map(lambda x:x*2+1,foo) for i in m: print(i)
结果
15 -----reduce----- 6 #####filter#### <filter object at 0x000000C57B50B898> 0 3 6 9 ----map--- 1 3 5 7 9 11 13 15 17 19
序列处理函数
filter()
zip()
map()
reduce()

浙公网安备 33010602011771号