Python11 递归函数
递归函数 理解:一个函数在内部调用自身本身,这个函数就是递归函数。 优点:递归函数的优点是定义简单,逻辑清晰。理论上,所有的递归函数都可以写成循环的方式,但循环的逻辑不如递归清晰。 递归函数实例: 阶乘 : 代码: ``` # 阶乘 -递归函数实现 : 例3的阶乘: 1 * 1 * 2 * 3 def factorial(x): if not isinstance(x,(int)) or x < 0 : # 校验参数类型必须是正整数或者是0 raise TypeError("参数x类型必须是正整数") elif x == 0: return 1 # 0的阶乘是1 else: return x * factorial(x-1) # 分解 return x * factorial(x-1) # x = 3 时, 结果是 3 * factorial(3-1)(即x=2) # x = 2 时,结果是 2 * factorial(2-1) (即x=1) # x = 1 时,结果是 1 * factorial(1-1) (即x=3) # x = 0 时,结果是 1 # 最后结果 3 * 2 * 1 * 1 print(factorial(3)) ``` 运行结果: 栈溢出:在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回