函数递归:函数的递归调用,即在函数调用的过程中,又直接或间接地调用了函数本身
# import sys
# print(sys.getrecursionlimit())
# sys.setrecursionlimit(10000)
# print(sys.getrecursionlimit())
def foo():
print('from foo')
foo()
foo()
def bar():
print('from bar')
foo()
def foo():
print('from foo')
bar()
foo()
递归分为两个阶段
1、回溯:
注意:一定要在满足某种条件结束回溯,否则的无限递归
2、递推
总结:
1、递归一定要有一个明确地结束条件
2、没进入下一次递归,问题的规模都应该减少
3、在python中没有尾递归优化
# age(5)=age(4)+2
# age)4)=age(3)+2
# age(3)=age(2)+2
# age(2)=age(1)+2
# age(1)=18
# age(n)=age(n-1)+2 # n > 1
# age(n)=18 #n=1
#
# def age(n):
# if n == 1:
# return 18
# return age(n-1)+2 #age(4)+2
#
# age(5)
items=[1,[2,[3,[4,[5,[6,[7,[8,[9,[10,]]]]]]]]]]
def tell(l):
for item in l:
if type(item) is not list:
print(item)
else:
tell(item)
tell(items)
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有