有人可以向我解释这个代码是如何执行的?我仍然搞不懂递归



输出应该是4,3,2,1,对吗?

def test(x): 
if x > 0 :
test(x - 1)
print(x)
test(4)
#output => 1
#output => 2
#output => 3
#output => 4

这就是调用堆栈。代码被推送到调用堆栈,并在执行过程中弹出。这就是执行递归调用的地方。请参阅此以供参考https://www.freecodecamp.org/news/how-recursion-works-explained-with-flowcharts-and-a-video-de61f40cb7f9/

测试(4(生成测试(3(、测试(2(、测试"1",并推送到调用堆栈。正如我们所知,Stack是FILO(先进先出(。最后推送的递归指令将弹出并执行1的第一个结果打印。然后是2,3,最后是4。

最新更新