【发布时间】:2020-04-25 07:01:44
【问题描述】:
当我运行以下代码时:
def heart_value(name1,name2,name3):
if name1 == "Rachel":
return print("So you are Rachel!")
elif name2 == "Rachel":
print("Ah, so the second person is Rachel.")
return print('Right?')
elif name1 != 'Rachel':
return print('So Rachel is not the first person.')
else:
return print('ok')
print(heart_value("Rachel","Rachel","Mike"))
它给我如下:
So you are Rachel! None
为什么还要打印None?
【问题讨论】:
-
因为您正在打印另一个
print函数的输出。您可以通过只返回字符串而不是print函数来避免这种情况。 -
print将某些内容作为side effect.打印到屏幕上print(<anything>)的返回值始终为None,因为打印函数不会像sum函数那样返回值例如 -
我不知道是谁投了这个问题,但只是我的两分钱,它不值得投反对票(因此我的抵消投票)。一般来说,我认为如果您对新用户投反对票,您可能应该解释原因。对于新用户来说,不加说明就被否决并不是特别有用。
标签: python