Python函数的递归调用
生活随笔
收集整理的這篇文章主要介紹了
Python函数的递归调用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一:遞歸的定義
函數的遞歸調用:是函數嵌套調用的一種特殊形式
具體是指:
在調用一個函數的過程中又直接或者間接地調用到本身
# 直接調用本身 def f1():print('是我是我還是我')f1() f1()# 間接接調用本身 def f1():print('===>f1')f2()def f2():print('===>f2')f1() #再次調用函數f1f1()# 運行代碼拉到很后面會報錯:Traceback (most recent call last) 超出最大遞歸深度!!!# 一段代碼的循環運行的方案有兩種方式一:while、for循環
while True:print(1111)print(2222)print(3333)方式二:遞歸的本質就是循環:
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' def f1():print(1111)print(2222)print(3333)f1() f1()二:需要強調的的一點是:
遞歸調用不應該無限地調用下去,必須在滿足某種條件下結束遞歸調用
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' n=0 while n < 10:print(n)n+=1def f1(n):if n == 10:returnprint(n)n+=1f1(n)f1(0)三:遞歸的兩個階段
回溯:一層一層調用下去
遞推:滿足某種結束條件,結束遞歸調用,然后一層一層返回
四:遞歸的應用
l=[1,2,[3,[4,[5,[6,[7,[8,[9,10,11,[12,[13,]]]]]]]]]]def f1(list1):for x in list1:if type(x) is list:# 如果是列表,應該再循環、再判斷,即重新運行本身的代碼f1(x)else:print(x)f1(l)總結
以上是生活随笔為你收集整理的Python函数的递归调用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用 Python 对比两个目录下的内容,
- 下一篇: python小整数池与大整数池