一、递归函数
函数是可以被调用的,且一个函数内部可以调用其他函数。如果一个函数在内部调用本身,这个函数就是一个递归函数。函数递归调用的过程与循环相似,而且理论上,所有的递归函数都可以写成循环的方式,但是递归函数的优点是定义简单,逻辑清晰。递归和循环都是一个重复的操作的过程,这些重复性的操作必然是需要有一定的规律性的。另外,很明显递归函数也需要一个结束条件,否则就会像死循环一样递归下去,直到由于栈溢出而被终止(这个下面介绍)。
可见,要实现一个递归函数需要确定两个要素:
递归规律
结束条件
1. 实例:计算正整数n的阶乘 n! = 1 * 2 * 3 * ... * n
循环实现
思路有两个:
从1乘到n,需要额外定义一个计数器存放n当前的值
从n乘到1,无需额外定义计数器,直接对n进行减1操作,直到n=0返回1结束
def fact(n):
if n == 0: return 1
result = 1
while n >

