匿名函數是一種不需要為函數命名的函數定義方式,以lambda關鍵字開頭
lambda x:x*x
def getresult(x);
return x*x
上述代碼塊中的lambda的x對應下面getresult中的括號中的x,lambda中的x*x對應return後面的x*x
匿名函數之所以叫做匿名函數是因為他沒有函數名稱。再舉一個例子
#只含一個參數的函數
square=lambda x:x*x
result=square(12)
print(result)
#含有多個參數的函數
triangle=lambda x,y:0.5*x*y
result=triangle(23,4)
print(result)
lambda的主體是一個表達式,而不是一個代碼塊,不適合處理復雜的邏輯情況。
當我們創建一個包含較為復雜邏輯的函數時,建議使用def創建函數。
函數的內部調用函數自己,這種自己調用自己的函數就是遞歸函數
def sun(n)
if n<=0:
return 0
return n+sum(n-1)
print(sum(5))
以上這個遞歸函數就是用來計算數字的累加(計算5以內的數字累加)
在遞歸函數中,if判斷就是終止條件,在上述例子中,當n<=0時,就返回0,遞歸就終止了
假如沒有條件限制,就成死循環了。