递归函数

递归函数

递归的定义:python

  • 什么事递归:函数递归是指“直接调用或间接调用”函数自己函数

    ​ 直接调用:指的是在函数内置,直接调用函数自己code

    ​ 间接调用:两个函数之间相互调用间接形成递归递归

    每调用一次自身,至关于复制一份该函数,只不过参数有变化,参数的变化,就是重要的结束条件utf-8

  • 这是一种函数嵌套调用的表现形式
  • 最大递归层数作了一个限制:998,get

获取递归深度: 了解
            sys.getrecursionlimit()

设置递归深度: 了解
            sys.setrecursionlimit(深度值)

下面是一个递归函数的实例:it

#coding=utf-8
def calc(n):

    print(n)

    if int(n/2) > 0:
        calc(int(n/2))
    else:
        print('------')

    print(n)
calc(10)

打印结果:
10
5
2
1
------
1
2
5
10

递归分解io

def calc(10):
    print(10)
    if int(10/2) > 0:
    
        def calc(5):
            print(5)
            if int(5/2) > 0:

                def calc(2):
                    print(2)
                    if int(2/2) > 0:

                        def calc(1):
                            print(1)
                            print('------')
                            print(1)
                    print(2)
            print(5)
    print(10)
def foo(n):
    print(n)
    n += 1
    foo(n)
foo(1)
想要递归有意义,必须遵循两个条件:
    - 回溯:
        指的是重复地执行, 每一次执行都要拿到一个更接近于结果的结果,
        回溯必要有一个终止条件。

    - 递推:
        当回溯找到一个终止条件后,开始一步一步往上递推。

小结class

#使用递归函数的优势是逻辑简单清晰,缺点是过深的调用会致使栈溢出。
相关文章
相关标签/搜索