【发布时间】:2023-02-04 18:29:45
【问题描述】:
我想是否有人可以通过以下方式向我解释如何思考这种递归计算:
def walk(stop, start=1):
print(start, end= "")
if start +1 < stop:
walk(stop, start +1)
walk(3)
我的想法:
- walk(3) 实际上是
walk(3, 1)# 第一行 walk(stop, start=1) - 因为开始比停止小,我希望得到:
if 2 <3def walk(top) - 这意味着 walk(stop, start +1) 最终会变成:walk(3,3)
- 我的结果是 3 - 但我应该得到 12
解决这个问题的步骤是什么?请记住,我是 Python 的新手,每个人都必须从某个地方开始——我相信这非常简单,但如果有人能解释如何思考这个问题,我将不胜感激。 谢谢
【问题讨论】:
-
它确实按预期打印
12 -
walk(3) is actually walk(3, 1) # for the first line walk(stop, start=1)是的。because start is smaller than stop, I expected to get : if 2 <3是的。and that would mean that walk(stop, start +1) would end up being : walk(3,3)end up being是什么意思?my result was 3 - but I am supposed to get 12等等,你的第一的以为是walk(3) is actually walk(3, 1)和功能印刷那么,当您希望只看到3时,您认为1在哪里? -
你好,为什么你觉得在项目符号 3 中,它是 walk(3,3) 不应该是 walk(3,2) 因为 start+1 是一个操作并且不同于 start=start+1 或 start+=1
-
好的,我看到我已经加倍了。所以再次 1st)walk(3,1)- 因为 start+1=2 小于 3,所以我们去 walk(stop, start +1),这里是 get (3,2) -- 我还是不知道了解如何获得 12?
-
是的,在 jupyter notebook 中运行时,我也得到 12。但我需要能够在不使用 jupyter 的情况下得到这个结果。
标签: python