Python:如何正确执行此递归功能?

时间:2019-10-13 09:50:25

标签: python python-3.x

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

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

据我了解,输出应如下:

1
2
3
4

但是,完全相反。

2 个答案:

答案 0 :(得分:1)

希望这会有所帮助

>>> 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条件来做到这一点。

答案 1 :(得分:0)

你错了。使用 If 代替 While 。应该是:

UserDemographyDTO