14 python初學(高階函數 遞歸函數 內置函數)
阿新 • • 發佈:2019-01-12
align 執行 函數返回值 效率 n) pytho span n-1 問題
高階函數:1. 函數名是一個變量,函數名可以進行賦值
2. 函數名可以作為函數參數,還可以作為函數返回值(函數名稱作為函數返回值時返回的是:函數的地址;print 這個返回值的調用相當於執行這個函數。 函數調用作為函數返回值相當於返回這個函數的執行結果)
def f(n): return n*n def foo(a, b, func): return func(a)+func(b) print(foo(1, 2, f)) # >>> 5
遞歸函數:
- 調用自身函數
- 設置結束條件
- 每次進入更深一層遞歸時,問題規模相比上一層都有所減少
- 但凡是遞歸可以寫的函數,循環都可以解決
- 遞歸的效率在很多時候非常低,遞歸層次過多會導致棧溢出
經典案例:斐波那切數列
# 0 1 1 2 3 5 8 13 21 # febo(1) = 0 febo(2) = 1 febo(3) = 1 # febo(n) = feb(n-1) + feb (n-2) def febo(n): if n == 1: return 0 if n == 2: return 1 return febo(n-1)+febo(n-2) print(febo(4))
內置函數:
參考如下博客:https://www.cnblogs.com/y-m-f/p/7764798.html
14 python初學(高階函數 遞歸函數 內置函數)