python - Python:如何正确执行此递归函数?
问题描述
我使用函数默认参数在自身内部调用了 5 次函数。但是,根据我的理解,输出不是我所期望的。
def fun(count=0):
while count < 5:
print(count)
count+=1
fun(count)
fun()
据我了解,输出应如下所示:
1
2
3
4
但是,完全相反。
解决方案
希望这可以帮助
>>> 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
条件来做到这一点。
推荐阅读
- c# - 尝试使用 .Net Core 中的值转换器将模型中的 long 转换为具有多个字段的对象
- keras - keras inceptionv3 预训练模型转换为顺序模型?
- node.js - pm2 在树莓派上失败
- c# - 移除有错误的元素时,不会引发 Validation.ErrorEvent
- python-3.x - 如何在 Python 中为 ** data.set_index ** 添加图例?
- visual-studio-code - JDL:找到可分组关系“OneToOne”
- android - 当我上传我的应用程序的新版本时,谷歌正在创建 10 个用户
- c++ - 如何用 QtConcurrent 替换 Qthread
- ios - Swift 4 - 使用 httpbody 的 Alamofire 发布请求
- python - 在 tkinter 中填充正确的网格单元的问题