函数与 Lambda 表达式
函数
**1)定义函数用def关键字:def 函数名(参数1,参数2,…):函数体
2)调用函数
函数名(参数1,参数2,…)
def sum(x,y):
z=x+y
return z
print("sum(2,5)=",sum(2,5)) #sum(2,5)= 7
3)返回函数
return ()
4)形参
函数定义过程中小括号里面的
5)实参
函数在调用过程中传递进去的
6)关键字参数
>>>def SaySome(name,words)
print(name+'->'+words)
>>>SaySome(words='让编程改变世界',name='小甲鱼')
小甲鱼->让编程改变世界
7)默认参数:为形参赋初值
>>>def SaySome(name='小甲鱼',words='让编程改变世界')
print(name+'->'+words)
小甲鱼->让编程改变世界
>>>SaySome('祝子淇')
祝子淇->让编程改变世界
8)收集参数(不知道形参应该为多少时)
>>>def test(*params)
print('形参的长度是:',len(params))
print('第二个参数是:',params[1])
>>>test(1,'小甲鱼',3,3.5)
形参的长度是:4
第二个参数是: 小甲鱼
9)函数与过程
函数(function):有返回值
过程(procedure):是简单、特殊并且没有返回值的
10)返回值
>>>def back()
return [1,'小甲鱼',3.14]
>>>back()
[1,'小甲鱼',3.14]
>>>def back()
return 1,'小甲鱼',3.14
>>>back()
(1,'小甲鱼',3.14
11)嵌套函数
>>> def fun1():
print("fun1()正在被调用")
def fun2():
print("fun2()正在被调用")
fun2()
>>>fun1()
12)闭包函数
>>>def funx(x):
def funy(y):
return x*y
return funy
>>> i=funx(5)
>>> i(6)
30
>>>tunx(5)(6)
lambda表达式
用lambda表达式可以省下定义函数过程,可以使代码更精简
>>>lambda x,y:x-y
<function<lambda> at 0x00000179E4D08158>
>>>h=lambda x,y:x-y
>>>h(87,34)
53
filter(x,y):过滤掉y中不符合x的值
map(x,y):将y中的值经x处理得到新值
递归
>>>def factorial(a):
if n==1:
return 1
else:
return n*factotial(n-1)
>>>factorial(5)
120