在学习 Python 和浏览互联网时,我偶然发现了 w3schools.com 上的一段代码。我尝试使用他们的内置站点 Python IDLE 并使用我自己的Python 3.9.0
Shell 来运行它。我得到的是两个不同的输出。
我想知道哪个输出是正确的输出,为什么它提供两个不同的输出。
代码及其输出
内置站点 Python IDLE
Python 3.9.0 外壳
请注意,数字 21 仅在使用内置站点 Python IDLE 运行代码时打印(输出)一次,而在使用 Python 3.9.0 Shell 运行代码时它被打印(输出)两次。
我自己的调试
我尝试了一个简单的打印语句调试。检查结果只有一个不同,使用 Python 3.9.0 Shell 执行最后一个返回行并输出最后一个结果,而使用内置站点 Python IDLE 最后一个返回要么不执行,要么不输出,在这种情况下,我相信是前者,而且我相信正确的输出是 Python 3.9.0 Shell,但我不知道为什么会有两个不同的输出。
使用 Python 3.9.0 Shell 结果打印语句第 1 部分结果第 2 部分
使用内置站点 Python IDLE 结果打印语句第 1 部分结果第 2 部分
源代码
def tri_recursion(k):
if(k>0):
result = k + tri_recursion(k-1)
print(result)
else:
result = 0
return result
tri_recursion(6)