1. 程式人生 > >Python筆記:函數的遞歸

Python筆記:函數的遞歸

代碼 com 垃圾回收機制 遞歸函數 size 兩個 logs htm rdquo

遞歸函數 recursion
遞歸是指函數直接或間接的調用自身

遞歸實例:

#函數直接調用自身
  def f():
      f()直接調用自身
  f()
  print(“遞歸完成”)
  #函數間接調用自身
  def fa():
    fb()
  def fb():
    fa()
  fa()
  print(“遞歸完成”)


遞歸說明:
遞歸一定要控制遞歸的層數,當符合某一條件時要終止遞歸調用
幾乎所有的遞歸都可以用while循環代替

遞歸的優缺點:
優點:

  可以把代碼簡單化,讓思路更清晰,代碼更簡潔

缺點:

  遞歸因系統環境影響大,當遞歸深度太大時,可能會得到不可預知
的結果

遞歸調用分為兩個階段:
遞推階段:
  從原問題出發,按遞歸公式遞推,從未知到已知,最終到達遞歸終止條件
回歸階段
  按遞歸終止條件求出結果,逆向逐步代入遞歸公式,回歸到原問題求解
(每次局部變量都會開啟新的變量空間,結束時會銷毀局部變量)(Python的垃圾回收機制)

#限制遞歸層數的實例
  recursion2
def fx(n):
    print("遞歸進入",n,‘層‘)
    if n==3:
        return 
    fx(n+1)
    print("遞歸出", n, ‘層‘)
fx(1)
print("程序結束")

如果想要了解遞歸對一些實際問題的操作,歡迎看我下一篇文章https://www.cnblogs.com/xinin0909/p/9575666.html

Python筆記:函數的遞歸