【发布时间】:2020-07-14 19:32:42
【问题描述】:
我是 Python 的新手,我很难理解 return 语句在递归函数中的几种情况下是如何工作的。
第一个是:
为什么当n变为1时程序没有通过else测试返回时“返回10”乘以10? 也就是说这样的结果是:1200(或5*4*3*2*1*10)
def test(n):
if n == 1:
return 10
else:
return n * test(n-1)
print(test(5))
然后让我稍微改变一下,它的结果是 24,这意味着 10 被添加到下面的结果中。我想我只是对 return 的实际工作方式以及在具有多个 return 的递归中使用时的工作方式有疑问。
def test(n):
if n == 1:
return 10
else:
return n+test(n-1)
print(test(5))
任何帮助将不胜感激。
【问题讨论】:
-
与其花时间写这个问题,不如先花时间学习递归的基础知识。
-
另外,Stack Overflow 不是代码解释网站。你应该阅读How to Ask 部分
-
谢谢。我确实理解递归,因为它只是一个调用自身的函数。我不明白的是返回最终答案的确切计算顺序,因为我忽略了它。我为问题的格式道歉。我是您网站的新手,当我阅读它时,我未能掌握所有细微差别。毕竟我老了,退休了,只是在寻找答案。对不起。
标签: python-3.x recursion return