Python 中的函數可以呼叫自己,這就是遞迴。在許多情境中,遞迴是非常有用的。

通常用階乘計算來解釋遞迴。一個數字的階乘即是該數字 n 乘上 n-1,再乘上 n-2…,一直到達 1 為止:

3! = 3 × 2 × 1 = 6
4! = 4 × 3 × 2 × 1 = 24
5! = 5 × 4 × 3 × 2 × 1 = 120

利用遞迴,我們可以撰寫一個函數來計算任何數字的階乘:

def factorial(n):
 if n == 1: return 1
 return n × factorial(n-1)

print(factorial(3)) # 6
print(factorial(4)) # 24
print(factorial(5)) # 120

如果在 factorial() 函數內呼叫的是 factorial(n) 而不是 factorial(n-1),將會導致無窮遞迴。Python 預設會在執行 1000 次遞迴後停止,當達到這個限制時,你將會得到一個 RecursionError 錯誤。

遞迴在許多情境中都很有幫助,它可以在沒有其他最佳解法的情況下簡化我們的程式碼,因此瞭解這個技巧是很好的。