学过编程的童鞋都知道函数是封装好的可执行的代码模块,可减少代码冗余,说起简洁高效的内置函数,我觉得Python太体贴了,话不多说,切入正题吧:
函数参数总结
1.位置匹配 func(name)
>>> def func(arg1,arg2,arg3):
return arg1,arg2,arg3
>>> print(func(1,2,3))
(1, 2, 3)
2.关键字匹配 func(key=value)
>>> def func1(k1='',k2=None,k3=''):
return k1,k2,k3
>>> print(func1(k3=5,k1=4,k2=3))
(4, 3, 5)
3.收集匹配
1.元组收集 func(arg1,arg2)
2.字典收集 func(key1=value1,key2=value2)
#*params:(搜集参数)参数个数不定,若没有提供可收集的参数,params为一个空元组
>>> def test(*params,exp):
print("参数的长度:",len(params));
print("第二个参数:",params[1]);
>>> test(1,'小虾米',3.14,6,7,8,exp = 9)
参数的长度: 6
第二个参数: 小虾米
>>> def test(**args):#键值对的参数,若没有提供一一对应的的键值参数,args为一个空字典
print(args)
>>> test(args1=1,args2=2,args3=3)
{'args1': 1, 'args2': 2, 'args3': 3}
4.参数顺序
>>> def test(a,d,b=6,*args,**kwargs):
print('b = %d'%b)
print('args is',args)
print('kwargs is',kwargs)
>>> test(2,3,4,5,6,7,9,[1,2,3,4],{1:2,3:4},par1='a',par2='b',par3='c')
b = 4
args is (5, 6, 7, 9, [1, 2, 3, 4], {1: 2, 3: 4})
kwargs is {'par1': 'a', 'par2': 'b', 'par3': 'c'}
参数位置:1.先是位置匹配的参数;2.关键字匹配的参数;3.收集匹配的元组参数;4.收集匹配的关键字参数
lambda
1.lambda是一个表达式。
2.它没有名称,存储的也不是代码块,而是表达式。
>>> def g(x,y):
return 2 * x + y
>>> g(5,1)
11
>>> d = lambda x,y:2 * x + y#与上面函数功能相同,使用lambda省下定义函数过程
>>> d(5,1)
11
>>> g=lambda *args:sum(args)#一系列参数求和
>>> g(1,2,3,4,5,6,7,8,9,10)
55
>>> d = lambda x:x+1 if x > 0 else "error"
>>> d(3)
4
>>> d(0)
'error'
>>> g = lambda x:[(x,i) for i in range(0,10)]
>>> g(5)
[(5, 0), (5, 1), (5, 2), (5, 3), (5, 4), (5, 5), (5, 6), (5, 7), (5, 8), (5, 9)]
filter 过滤非True的内容
>>> t = [1,2,3,4,5]
>>> g =list(filter(lambda x:x > 3,t))#将t中大于3的元素找出来
>>> g
[4, 5]
>>> list(filter(None,[1,0,True,False]))#过滤非TRUE内容
[1, True]
## 输出一个包含0到19的所有奇数的列表,或将列表中不能被2整除的元素过滤出来
>>> list(filter(lambda x:x%2,range(20)))
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
#注意map与filter函数区别,将列表的元素执行整除操作
>>> list(map(lambda x:x%2,range(10)))
[0, 1, 0, 1, 0, 1, 0, 1, 0, 1]
#sorted()函数并不改变a的值,这里根据元素与8的距离从小到大排序,a.sort()改变a的值返回空值
>>> a = [0,1,2,3,4,5,6,7,8,9,0]
>>> sorted(a,key=lambda x:abs(8-x))
[8, 7, 9, 6, 5, 4, 3, 2, 1, 0, 0]
听说,好看的皮囊千篇一律,有趣的灵魂万里挑一,^_^^_^^_^,仔细想想,美貌与实力我都要,缺一不可啊
哈哈,希望我的例子和注释对大家有所帮助!