python 遞迴
介紹
重複任務常用for和while迴圈,它們可對對列表,集合等執行迭代。另外可以通過呼叫函式自身,即遞迴。
什麼是遞迴?
遞迴函式通常有兩個元件:
- 何時應該停止遞迴
- 呼叫函式自身
讓我們看一個小例子來演示這兩個元件:
# Assume that remaining is a positive integer def hi_recursive(remaining): # The base case if remaining == 0: return print('hi') # Call to function, with a reduced remaining count hi_recursive(remaining - 1)

圖片.png
為什麼不使用Loop?
一些問題通常遞迴更容易解決。遞迴的常見用例是樹遍歷:
在使用遞迴時,遍歷樹的節點和葉子通常更容易思考。儘管迴圈和遞迴都可以遍歷樹,但它們具有不同的目的 - 迴圈意味著重複任務,而遞迴意味著將大任務分解為更小的任務。
例項:列表求和
Python包含列表的sum函式。預設的Python實現CPython在C中使用了一個不確定的for迴圈來建立這些函式(這裡的原始碼對於那些感興趣的人)。讓我們看看如何使用遞迴:
def sum_recursive(nums): if len(nums) == 0: return 0 last_num = nums.pop() return last_num + sum_recursive(nums)
參考資料
- 討論qq群144081101 567351477
- 本文最新版本地址
- 本文涉及的python測試開發庫 謝謝點贊!
- 本文相關海量書籍下載
- python工具書籍下載-持續更新
- python GUI工具書籍下載-持續更新
例項:階乘
def factorial(n): if n == 0 or n == 1: return 1 return n * factorial(n - 1)
斐波納契數列
def fibonacci_iterative(n): if n <= 1: return n a = 0 b = 1 for i in range(n): temp = a a = b b = b + temp return a