程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python之匿名函數與遞歸函數

編輯:Python

匿名函數

概念

匿名函數是一種不需要為函數命名的函數定義方式,以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)

注意

  1. 要傳入多個參數時,各個參數之間要使用逗號隔開。
  2. 不要漏掉冒號,這裡的冒號是匿名函數用來固定格式的一種方式,冒號後面是具體如何計算冒號前面的輸入數值。
  3. 冒號後面是函數的返回值,注意這裡不需使用return關鍵字前面的square和triangle是變量,將匿名函數賦值給一個變量,再由這個變量來調用函數。
  4. 函數在調用時仍然需要使用小括號傳參數的方式是進行調用。

局限

lambda的主體是一個表達式,而不是一個代碼塊,不適合處理復雜的邏輯情況。

當我們創建一個包含較為復雜邏輯的函數時,建議使用def創建函數。

遞歸函數

函數的內部調用函數自己,這種自己調用自己的函數就是遞歸函數

def sun(n)
if n<=0:
return 0
return n+sum(n-1)
print(sum(5))

以上這個遞歸函數就是用來計算數字的累加(計算5以內的數字累加)

在遞歸函數中,if判斷就是終止條件,在上述例子中,當n<=0時,就返回0,遞歸就終止了

假如沒有條件限制,就成死循環了。

 


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved