1. 程式人生 > >python筆記七(遞歸函數)

python筆記七(遞歸函數)

介紹 特征 就是 while ret 過多 class 運算 筆記

在介紹遞歸函數之前,我們先介紹以下遞歸函數的使用有以下特征:

1.遞歸函數就是函數在函數體內部調用本身

2.遞歸函數的運算規模要不斷減小,這樣才是可以運算的

3.遞歸的層數不要超過999,因為函數調用是通過棧(stack)這種數據結構實現的,每當進入一個函數調用,棧就會加一層棧幀,每當函數返回,棧就會減一層棧幀。調用層數過多就會導致棧溢出。

4.理論上所有的遞歸函數都可以用循環來表示,但是遞歸更形象易於理解(雖然我更習慣使用循環~~~~)

>>> def factorial(n):
...     if n ==1:
...         return 1
...     
else: ... return n*factorial(n-1) ... >>> factorial(5) 120

以上代碼我們通過循環來實現~~~~~

>>> def factorial(n):
...    fac=1
...    while n>1:
...        fac=fac*n
...        n-=1
...    return fac
>>> factorial(5)
120

python筆記七(遞歸函數)