递归的复习
递归的特点
- 调用自身
- 结束条件
示例如下
def func(x):
if x>0:
print(x)
func(x-1)
这里如果调用func()方法,并传参为3,即func(3),那么输出就是:
3
2
1
接下来画一个图来解释函数的调用执行,这里的结束条件就是x<=0,所以只会输出三次:
那如果如下所示的递归函数,结果的输出又是什么呢?会和上一个示例的结果输出一致吗?
def func(x):
if x>0:
func(x-1)
print(x)
在这里我先不写答案,先画一个图来帮助理解,这样也能让我自己加深理解,如下图:
结果输出是:
1
2
3
解析:这里是调用函数func(x),并传参3,当x是3时,进入判断并再次调用func(x-1),此时x为2,再次进入判断并再次调用func(x-1),此时x为1,再次进入判断,并再次调用func(x-1),此时x为0,不满足判断条件,会退出执行,那么上一步的调用会先输出,再上一步调用会接着输出,第一步执行的调用会最后输出,那么根据上述的调用可以看出,先输出打印的是1,然后是2,最后是3.