Python3基礎 函式 遞迴 階乘與斐波那契數列

2022-07-02 19:00:16 字數 1608 閱讀 6986

"""

@author : 行初心

"""遞迴 要呼叫函式自身,都要進行壓棧,彈棧。資源消耗的問題

遞迴 要有正確的終止條件

遞迴有危險性

"""if x == 1:

return 1

else:

return x * f(x - 1)

"""step 1:先下去

f(5)=5*f(4)

f(4)=4*f(3)

f(3)=3*f(2)

f(2)=2*f(1)

f(1)=1 (return)

step 2:在逐層返回來

f(1)=1 (return)

f(2)=2*f(1)

f(3)=3*f(2)

f(4)=4*f(3)

f(5)=5*f(4)

最終,我們知道了f(5)的結果

"""def main():

print(f(5))

if __name__ == '__main__':

main()

/home/coder/anaconda3/envs/py37/bin/python /home/coder/pycharmprojects/basic/demo.py

120process finished with exit code 0

"""

@author : 行初心

"""# 要想往上走的話,資料結構與演算法必須要學習。

# 如果遇到優秀的老師,那麼資料結構與演算法是很好玩的知識。

def fab(n):

if n < 1:

print('輸入有誤')

return -1

elif n == 1 or n == 2:

return 1

else:

return fab(n - 1) + fab(n - 2)

def main():

result = fab(20)

print(result)

if __name__ == '__main__':

main()

/home/coder/anaconda3/envs/py37/bin/python /home/coder/pycharmprojects/basic/demo.py

6765

process finished with exit code 0

python具有開源、跨平台、解釋型、互動式等特性,值得學習。

python的設計哲學:優雅,明確,簡單。提倡用一種方法,最好是只有一種方法來做一件事。

**的書寫要遵守規範,這樣有助於溝通和理解。

每種語言都有獨特的思想,初學者需要轉變思維、踏實踐行、堅持積累。

Python3 遞迴函式

1.必須有乙個明確的結束條件 2.每次進入更深一層遞迴時,問題規模相比上次遞迴都應有所減少 3.遞迴效率不高,遞迴層次過多會導致棧溢位 在計算機中,函式呼叫是通過棧 stack 這種資料結構實現的,每當進入乙個函式呼叫,棧就會加一層棧幀,每當函式返回,棧就會減一層棧幀。由於棧的大小不是無限的,所以,...

Python3 遞迴函式

在函式內部,可以呼叫其他函式。如果乙個函式在內部呼叫自身本身,這個函式就是遞迴函式。def calc n print n if int n 2 0 return n return calc int n 2 calc 10 輸出 105 21遞迴特性 1.必須有乙個明確的結束條件,最多遞迴999次 2...

Python3 遞迴函式

1 def fat n 2 result 13 for i in range 2,n 1 4 result result i5 return result6 print fat 5 7 8 9 def digui x 10 if x 1 11 return 112 return x digui x ...