Python函數(shù)遞歸調用實現(xiàn)原理實例解析
更新時間:2020年08月11日 08:29:41 作者:吃了好多肉
這篇文章主要介紹了Python函數(shù)遞歸調用實現(xiàn)原理過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
函數(shù)的遞歸調用:
是函數(shù)嵌套調用的一種特殊形式
具體是指:
在調用一個函數(shù)的過程中又直接或間接地調用到了本身
# 直接調用本身 def func(): print('我是func') func() func() # 函數(shù)會不斷的運行永遠不會結束,但Python不允許這種情況,會默認限制只能調1000次. # 間接調用本身 def f1(): print('我是f1') f2() def f2(): print('我是f1') f1() f1() # 此時也相當于直接調用本身,f1-->f2-->f1-->f2-->f1。。。同樣會不斷循環(huán)
遞歸不應該無限的調用下去,必須在滿足某種條件下結束遞歸
# 寫一個函數(shù)獲取0-9 def f1(n): if n == 10: return print(n) n += 1 f1(n) f1(0) # 0 1 2 3 4 5 6 7 8 9
遞歸的兩個階段:
1、回溯:一層一層調用下去
2、遞推:滿足某種條件,結束遞歸調用,然后一層一層返回。
遞歸的應用:
例如打印出一個嵌套多層列表內(nèi)的所有元素
li = [1,2,[3,4,[5,6,[7,8],9]]] def func(l): for i in l: if type(i) is list: func(i) else: print(i) func(li)
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
python神經(jīng)網(wǎng)絡使用Keras構建RNN訓練
這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡使用Keras構建RNN網(wǎng)絡訓練,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪<BR>2022-05-05Python將阿拉伯數(shù)字轉換為羅馬數(shù)字的方法
這篇文章主要介紹了Python將阿拉伯數(shù)字轉換為羅馬數(shù)字的方法,涉及Python字符串轉換及流程控制的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-07-07