Python 递归
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 递归相关的知识,希望对你有一定的参考价值。
一、解释
递归:在调用一个函数的过程中,直接或间接地调用了函数本身这个就叫递归
注:Python在递归中没有像别的语言对递归进行优化,所以他的每一次调用都会基于上一次的调用进行,并且他设置了最大的递归数量防止递归外溢
二、实例
#直接调用自己: def func(): print(‘from func‘) func() func()
#间接调用自己 def foo(): print(‘from foo‘) bar() def bar(): print(‘from bar‘) foo() foo()
#递归的实现: def age(n): if n == 1: return 18 return age(n-1)+2 print(age(5)) # 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(1)=18 #n=1 等于终止条件
三、递归的回溯与递推
递推:像上边递归实现所拆解,递归每一次都是基于上一次进行下一次的执行,这叫递推
回溯:则是在遇到终止条件,则从最后往回返一级一级的把值返回来,这叫回溯
# 实例 l =[1, 2, [3, [4, 5, 6, [7, 8, [9, 10, [11, 12, 13, [14, 15,[16,[17,]],19]]]]]]] def search(l): for item in l: if type(item) is list: search(item) else: print(item) search(l)
以上是关于Python 递归的主要内容,如果未能解决你的问题,请参考以下文章