我仍在尝试理解递归以及我期望代码打印的内容和实际打印的内容不同。
所以这是基于我在 youtube 上找到的一个简单示例的代码,
def count(n):
if n > 0:
print "Count 1", ", ", n
count(n - 1)
print "Count 2", ", ", n
else:
print "Done"
count(1)
这就是它打印的内容,
计数 1 , 1
完毕
计数 2 , 1
我所期望的是
计数 1 , 1
完毕
完毕
我的理解(这当然是错误的)是 count(1) (用于外部计数函数)将被调用,因为 1 大于 0 将打印 1,然后 count(1 - 1) (内部计数函数)将调用count(0) (外部计数函数),由于 0 不大于 1,这将打印完成。然后我认为 count(1 - 1) (内部计数函数)的返回也会返回 Done ,因为没有其他 n 值输入到内部 count() 中。我不明白如何完成打印一次和 1 打印两次???