lamdba表达式
表达式可以用来声明函数,lambda函数是一种简单的,在同一行中定义函数的方法,lambda函数实际生成一个函数对象
lambda表达式只允许包含一个表达式,不能包含复杂语句,表达式的计算结果就是函数的返回值
lambda基本语法如下:
lambda arg1,arg2,arg3…: 表达式
f = lambda a,b,c:a+b+c
print(f)
print(f(1,2,3))
"""
at 0x0000021570626950>
6
"""
g = [lambda a:a*2,lambda b:b*3,lambda c:c*4]
print(g[0](2),g[1](3),g[2](4)) # 4 9 16
s = "print('abc')"
eval(s) # abc
a = 10
b = 20
c = eval("a+b")
print(c) # 30
d = dict(a=100,b=200)
dd = eval("a+b")
ddd = eval("a+b",d)
print(dd) # 30
print(ddd) # 300
定义:函数内部自己调用自己的函数,称为递归函数
例子:
计算一下n的阶乘
def factorial(n):
if n == 1:
return 1
else:
return n*factorial(n-1)
res = factorial(4)
print(res)