【问题标题】:Output of Print statement is giving as (None, None) resultPrint 语句的输出为 (None, None) 结果
【发布时间】:2021-10-02 07:42:48
【问题描述】:

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

【问题讨论】:

标签: python python-3.x list jupyter-notebook data-science


【解决方案1】:

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

>>> 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
>>>

【讨论】:

    【解决方案2】:

    它是 Jupyter 的一部分,称为自动调用。这里有一些文档: https://ipython.readthedocs.io/en/stable/interactive/magics.html#magic-autocall

    拆分您的呼叫“;”或打印((a,b))。不确定您要达到的目标。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-15
      • 2022-07-05
      • 2022-12-20
      • 2017-10-21
      • 2014-11-26
      • 1970-01-01
      相关资源
      最近更新 更多