python笔记之递归函数

递归函数

递归的定义:在一个函数里再调用这个函数本身

递归的最大深度: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))
原文地址:https://www.cnblogs.com/zhangcheng94/p/12185891.html