天天看點

Python中lambda函數&eval()函數&遞歸的詳細用法

一、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)