首页 > 解决方案 > Print 语句的输出为 (None, None) 结果

问题描述

我正在尝试在 Python 中打印两个变量的值。我的问题是,当我尝试以这种方式打印值时,例如 Jupyter 笔记本中的 print(a),print(b),我得到了变量的值,但输出也给出了一个元组类型的结果作为(无,无)。我想知道它为什么给出 (None,None) 输出。我应该得到像(value1,value2)这样的结果。有人请指教。另外,请让我知道如何以元组格式生成结果,例如 (2,5) 其中 a=2,b=5。在此处输入图像描述

标签: pythonpython-3.xlistjupyter-notebookdata-science

解决方案


这只是命令行的副作用。如果你运行一个程序,你不会看到这个。如果您只是在命令行中键入表达式:

>>> 3
3

Python 会显示该表达式的结果。如果表达式返回 None,Python 什么也不显示。所以:

>>> time.sleep(3)
>>> print("hello")
hello
>>>

time.sleep返回None,所以你什么也看不到。您看到了 print 语句的副作用,但是由于 print 语句返回了None,它没有向您显示任何其他内容。但是当你这样做时:

>>> print(a),print(b)
2
5
(None,None)
>>>

两个打印语句都返回 None,并且因为您使用了逗号,所以该表达式的结果是一个包含两个 None 值的元组。因此,您会看到 print 语句的副作用,并且由于您的表达式 ( (None,None)) 与 不完全相同None,Python 会为您打印它。

逗号运算符不是分隔多个语句的正确方法,就像您在 C 中所做的那样。在 Python 中,逗号运算符构建元组。如果要在一行中分隔多个语句,请使用分号:

>>> print(a);print(b)
2
5
>>>

推荐阅读