Python 递归的教程

112 阅读1分钟

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 错误。

递归在很多地方都很有帮助,当没有其他最佳方式时,它可以帮助我们简化代码,所以了解这种技术是很好的。