通俗一點來說在函式的內部,直接去呼叫其他函式的方式叫做函式的巢狀.但是,如果這個函式呼叫的是自身呢?這個樣子的函式自身就屬於遞迴函式
經典例項:階乘自身就能用遞迴函式來表達出來
1! = 1
2! = 2 * 1
3! = 3 * 2 *1
...n! = n * (n-1)*…… * 2 * 1
以上是簡單直接說明了階乘的表達,接下來至二級用函式來進行直接表達出來
# 定義乙個函式,內部呼叫自己,如果是1 的換直接返回1
# 如果是大於1的話,輸出他的階乘,最後列印出來
def step_fun(num1):
if num1 == 1:
return 1
else:
return num1 * step_fun(num1 - 1)
# step_fun(n) 裡面的n 是自定義的引數,傳參到函式內部,不知道的話,可以在之前的博文找下
res = step_fun(3)
print(res)
python基礎 遞迴函式
遞迴函式 能自己呼叫自己的函式。特點 1必須有乙個明確的結束條件。否則會成死迴圈 2每次進入更深一層遞迴時,問題規模比上一層要減少。否則記憶體會撐爆 3遞迴效率不高,容易導致棧溢位。引入遞迴函式,先看乙個函式呼叫的執行順序。執行順序 如下圖。執行 過程中遇到函式,會在記憶體中載入函式,但不會執行,呼...
python基礎 函式遞迴
函式不僅可以巢狀定義,還可以巢狀呼叫,即在呼叫乙個函式的過程中,函式內部又呼叫另乙個函式,而函式的遞迴呼叫指的是在呼叫乙個函式的過程中又直接或間接地呼叫該函式本身 例如在呼叫f1的過程中,又呼叫f1,這就是直接呼叫函式f1本身 在呼叫f1的過程中,又呼叫f2,而在呼叫f2的過程中又呼叫f1,這就是間...
python基礎 函式遞迴
遞迴是一種程式設計思想,應用場景 在我們日常開發中,如果要遍歷乙個資料夾下面所有的檔案,通常會使用遞迴來實現 在後續的演算法課程中,很多演算法都離不開遞迴,例如 快速排序。3 2 1 def sum numbers num 1.如果是1,直接返回1 出口 if num 1 return 1 2.如果...