我不明白为什么函数在 x = 1 后不会中断。
但它确实:
>>> ================================ RESTART ================================
>>> x = 1
>>> def thisFunc(x):
print("Function called on x-value: ", x)
if x > 1:
result = thisFunc(x-1)
print(result)
return x+1
>>> thisFunc(x)
Function called on x-value: 1
2
>>>
编辑:为什么它会打印出它的作用以及最后的 x 值是什么以及为什么?
好吧,它会打印出来,因为你告诉它。尝试在执行函数时遵循 x 的值(“x 是一,一不大于1;返回 1+1。好的。[新案例] x 是二,二大于 1...”和很快)。
return
并且recursion
是编程的一部分;return 语句指定函数的结尾(即使您可能还有几行代码),它们还将数据传回给他们要求的任何东西。在您的情况下,您要问“根据这些规则,当 x 为 1 时会发生什么?”;返回的数据就是你的答案。
如果(您)需要,递归只是让函数调用自身的问题。您只需告诉程序“嘿,只要 x 大于 1,就调用这个函数 [恰好是最初调用的同一个函数] 并让它做它的事情”。为了更好地理解您的函数,我建议您将该行添加"Function called on x-value: "
到函数内的第一个print
语句中,或者至少可以让您识别哪个打印行是x
哪个是result
.
对于递归更深入的解释,我推荐使用洪水填充算法和僵尸和猫来解释递归