递归函数
递归的定义:在一个函数里再调用这个函数本身
递归的最大深度:997,997是python为了我们程序的内存优化所设定的一个默认值,我们当然还可以通过一些手段去修改它:
import sys print(sys.setrecursionlimit(100000))
def story(): print('从前有座山') story() story() RecursionError: maximum recursion depth exceeded while calling a Python object 递归的错误,超过了递归的最大深度
修改最大默认递归值
import sys sys.setrecursionlimit(1000000) n = 0 def story(): global n n += 1 print(n) story() story()
如果递归次数太多,就不适合使用递归来解决问题
递归的缺点 : 占内存
递归的优点: 会让代码变简单
递归函数实现斐波拉且数列:
def fib(n): if n == 1 or n == 2: return 1 else: return fib(n - 1) + fib(n - 2) print(fib(20))