遞回:在函式內部可以呼叫其他函式,如果一個函式在內部呼叫自身本身,這個函式就是遞回函式
遞回特性:
1、必須要有一個明確的結束條件
2、每次進入更深一層遞回時,問題規模相比上次遞回都應有所減少
3、遞回效率不高,遞回層次過多會導致堆疊溢位(在計算機中,函式呼叫
是通過堆疊(stack)這種資料結構實作的,每當進入一個函式呼叫,
堆疊就會加一層幀,每當函式回傳,堆疊就會減一層幀,由于堆疊的大小
不是無限的,所以,遞回呼叫的次數過多,會導致堆疊溢位)
1 # 遞回最大999層 2 def calc(n): 3 print(n) 4 return calc(n+1) 5 calc(1)
遞回示例:
1 def calc(n): 2 print(n) 3 if int(n/2) > 0: 4 return calc(int(n/2)) 5 calc(10) 6 7 # >>> 10 8 # >>> 5 9 # >>> 2 10 # >>> 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/143930.html
標籤:Python
上一篇:Python--高階函式
