首页 > 解决方案 > Python:如何正确执行此递归函数?

问题描述

我使用函数默认参数在自身内部调用了 5 次函数。但是,根据我的理解,输出不是我所期望的。

def fun(count=0):
    while count < 5:
        print(count)
        count+=1
        fun(count)
fun()

据我了解,输出应如下所示:

1
2
3
4

但是,完全相反。

标签: pythonpython-3.x

解决方案


希望这可以帮助

>>> def fun(count):
...     if count < 5:
...         print(count)
...         count+=1
...         fun(count)
...
>>> fun(0)
0
1
2
3
4
>>> fun(1)
1
2
3
4
>>>

您正在执行递归(一个调用自身的函数),因此您不需要while条件。总是计划递归在某一点停止以避免RecursionError: maximum recursion depth exceeded in comparison。在这里,我使用if条件来做到这一点。


推荐阅读