一、lambda函數
lamdba表達式
表達式可以用來聲明函數,lambda函數是一種簡單的,在同一行中定義函數的方法,lambda函數實際生成一個函數對象
lambda表達式隻允許包含一個表達式,不能包含複雜語句,表達式的計算結果就是函數的傳回值
lambda基本文法如下:
lambda arg1,arg2,arg3…: 表達式
f = lambda a,b,c:a+b+c
print(f)
print(f(1,2,3))
"""
<function <lambda> 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
二、eval()函數
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
三、遞歸函數
定義:函數内部自己調用自己的函數,稱為遞歸函數
def factorial(n):
if n == 1:
return 1
else:
return n*factorial(n-1)
res = factorial(4)
print(res)