函数递归

函数递归

1.递归的定义

函数的递归调用:是函数嵌套调用的一种特殊形式

函数的递归调用指的是在调用一个函数的过程中又直接或间接地调用该函数本身

例:直接调用函数f1本身

def f1():
    print('from f1')
    f1()
f1()

例:间接调用函数f1本身

def f1():
    print('from f1')
    f2()

def f2():
    print('from f2')
    f1()
f1()

例:一段代码循环的方式

#方式1:while,for循环
while True:
    print('好好学习')
#方式2:递归的本质就是循环
def f():
    print('好好学习')
    f()
f()

递归调用都是一个无限循环的过程

强调:递归调用不应该无限循环, 必须让递归调用在满足某个特定条件下终止

x=0
while x<10:
    print(x)
    x+=1

def f1(n):
    if n == 10:
        return
    print(n)
    n+=1
    f1(n)
f1(0)

2.递归的两个阶段

回溯:一层一层调用下去

递推:满足某种结束条件,结束递归调用,然后一层一层返回

age(5) = age(4) + 10
age(4) = age(3) + 10
age(3) = age(2) + 10
age(2) = age(1) + 10
age(1) = 18

def age(n):
    if n == 1:
        return 18
    return age(n-1) + 10
res=age(5)
print(res)

3.递归的应用

l=[1,2,[3,4]]
for x in l:
    if type(x) is list:
        for a in x:
            print(a)
    else:
        print(x)


l=[1,2,[3,4],6,7,[8,9,10,[11,12,[13,[14,15]]]]]
def f1(list1):
    for x in list1:
        if type(x) is list:
            # 如果是列表,应该再循环、再判断,即重新运行本身的代码
            f1(x)
        else:
            print(x)
f1(l)
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容