1. 程式人生 > >python中遞迴的使用

python中遞迴的使用

python中遞迴函式的使用:

def division(n):
    print(n)
    if n/2==0:
        return n#遞迴特性一:必須有一個明確的結束條件
return division(n/2)#遞迴特性而:每次遞迴都是為了讓問題規模變小
division(10)#遞迴特性三:遞迴層次過多會導致棧溢位,且效率不高
這種方式執行python檔案會報:RecursionError: maximum recursion depth exceeded while calling a Python object錯誤
原因是有小數的存在,有科學技術法的出現會導致遞迴一直進行,所以需要將n/2轉換為int型別
如下:
def division(n):
    print(n)
    if int(n/2)==0:
        return n#遞迴特性一:必須有一個明確的結束條件
return division(int(n/2))#遞迴特性而:每次遞迴都是為了讓問題規模變小
division(10)#遞迴特性三:遞迴層次過多會導致棧溢位,且效率不高

執行結果如下:
10
5
2
1
遞迴有三大特性,我已經在程式碼註釋中標出!