一、什么是递归
函数不仅可以嵌套定义,还可以嵌套调用,即在调用一个函数的过程中,函数内部又调用另一个函数,而函数的递归调用指的是在调用一个函数的过程中又直接或间接地调用该函数本身
例如
在调用f1的过程中,又调用f1,这就是直接调用函数f1本身
def f1():
print('from f1')
f1()
f1()
配图:递归调用1
在调用f1的过程中,又调用f2,而在调用f2的过程中又调用f1,这就是间接调用函数f1本身
def f1():
print('from f1')
f2()
def f2():
print('from f2')
f1()
f1()
配图:递归调用2
从上图可以看出,两种情况下的递归调用都是一个无限循环的过程,但在python对函数的递归调用的深度做了限制,因而并不会像大家所想的那样进入无限循环,会抛出异常,要避免出现这种情况,就必须让递归调用在满足某个特定条件下终止。
二、例题展示
l = [1,[2,[3,[4]]]] #要求:打印列表中的每个数字 def get_list(l): for i in l: if type(i) is int: print(i) else: get_list(i) get_list(l)
三、总结
综上所述:函数的递归,即函数满足一定的条件,需要重复执行,然后,当函数满足某个条件以后,不在递推,而是从最后一项回溯,从而求出值