为什么我在 Python 控制台中得到 None 元组的打印,而不是单个 None 的打印?

Sla*_*ugz 2 python python-3.x read-eval-print-loop nonetype

使用 Python(通过 cmd)并在其中写入以下内容时:

>>> import random
>>> print("hello"),print("world"),print(random.randint(5,10))
Run Code Online (Sandbox Code Playgroud)

我得到的输出是:

hello
world
8
(None, None, None)
Run Code Online (Sandbox Code Playgroud)

现在我不确定为什么解释器返回 的None元组,而不是单个None

use*_*_na 5

Python 将第二个输入行中的 解释,为创建一个元组,其返回值print均为None。每个打印语句只需一行。这是此行为的另一个示例:

>>> 5,4,3

回报

(5, 4, 3)

[更新以解决您的评论]

因为 python 的解释a,b,ctuple(a,b,c),所以print(),print(),print()相当于tuple(print(),print(),print())。如果你一行一行地执行,则tuple不会创建并且 python 只是执行该print()语句。现在真正让你感到困惑的一点来了。调用print()也将返回None,但这会自动隐藏,因为这是正常行为。然而 s的元组None不会自动隐藏,因为它不是None