函数的递归
特点:
1.函数在调用阶段直接或间接的又调用自己
2.递归函数不需要考虑循环的次数,只需把握结束的条件
# 查看递归深度:1000
- func(1)
- import sys
- print(sys.getrecursionlimit()) # 不是很精确
1.递归死循环:
- def index():
- print("这是第一个函数")
- login()
- def login():
- print("这是第二个函数")
- index()
- index()
2.函数的递归分为两个阶段:
1.回溯:重复的过程,一层层降低难度
2.递推:一层层往回推导的过程
- 要求:
第一个人18岁,第二个人比第一个人大两岁,第三个人比第二个人大两岁,第四个人比第三个人大两岁。。。
age(5)=age(4)+2
age(4)=age(3)+2
age(3)=age(2)+2
age(2)=age(1)+2
age(1)=18
- def age(n):
- if n == 1:
- return 18
- return age(n-1) + 2
- res = age(5) # 第五个人的年龄
- print(res)
3.递归使用的例子:依次打印列表中的数据
复杂度降低:列表越来越短
递归函数:
- l = [1 ,[2 ,[3 ,[4 ,]]]]
- def main(l):
- for i in l:
- if type(i )is int: # 判断是否为整型
- print(i)
- else:
- main(i)
- main(l)
版权声明:本文为guyouyin123原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。