google colab python递归错误是bug吗?
这是代码和结果google colab python递归错误是bug吗?,python,recursion,google-colaboratory,Python,Recursion,Google Colaboratory,这是代码和结果 def tri_recursion(k): if(k > 0): result = k + tri_recursion(k - 1) print(result) else: result = 0 return result print("\n\nRecursion Example Results") tri_recursion(6) 为什么“21”来了两次? 我也在“VS代码”、“PyCharm”上执行了它,但
def tri_recursion(k):
if(k > 0):
result = k + tri_recursion(k - 1)
print(result)
else:
result = 0
return result
print("\n\nRecursion Example Results")
tri_recursion(6)
为什么“21”来了两次?
我也在“VS代码”、“PyCharm”上执行了它,但这些不包括最后的“21”
怎么了
代码和结果:
IDE显示任何非“falsey”表达式的值。函数将值21
返回主程序。由于调用是作为简单表达式进行的,因此IDE计算该表达式并显示值;这就是第二个21
。如果要抑制它,请尝试指定值——无论如何,这是正确的做法
def tri_recursion(k):
if(k > 0):
result = k + tri_recursion(k - 1)
print(result) # Explicitly print the reults
else:
result = 0
return result
print("\n\nRecursion Example Results")
tri_recursion(6) # Implicitly display the expression value
第一个
21
来自print
调用。第二个是解释器显示的函数的返回值。如果您不想看到它,可以将函数调用的结果分配给变量。那么为什么VS代码的结果为“1 3 6 10 15 21”?因为您可能是通过文件调用它的。你只需要一个像123
这样的数字就可以看到同样的情况。如果您键入VS代码,它会显示吗?你的交互式口译员会。既然你知道它是从哪里来的,你当然可以自己解决细节了。啊哈!谢谢。您能告诉我如何只打印一个'21'吗?(与代码顶部对齐)我已经在第一条评论中告诉过你。将结果赋给一个变量。例如,val=tri_递归(6)
。然后,在最后将没有要显示的值。
def tri_recursion(k):
if(k > 0):
result = k + tri_recursion(k - 1)
print(result) # Explicitly print the reults
else:
result = 0
return result
print("\n\nRecursion Example Results")
tri_recursion(6) # Implicitly display the expression value
do_not_show = tri_recursion(6)