当前位置: 首页 > 面试题库 >

为什么打印功能返回无?

黎阳冰
2023-03-14
问题内容

我试图理解为什么外部print回报None

>>> a = print(print("Python"))
Python
None
>>> print(type(a))
<class 'NoneType'>

我注意到:

>>> a = print("hey")
hey
>>> type(a)
<class 'NoneType'>

有人能解释一下这里发生的一切吗?谢谢!


问题答案:

print()函数返回None。您正在打印该返回值。

这是因为print()没有什么 回报;
它的工作是将html" target="_blank">参数转换为字符串后,将其写入文件对象(默认为sys.stdout)。但是Python中的所有表达式(包括调用)都产生一个值,因此在这种情况下None就产生了。

您似乎将打印与返回此处混淆了。Python交互式解释器 也会 打印;如果不产生,它将打印直接在提示符下运行的表达式的结果None

>>> None
>>> 'some value'
'some value'

该字符串已回显(打印)到您的终端,而None并非如此。

由于print()返回None但写入相同的输出(您的终端),结果可能 看起来
相同,但是它们是非常不同的动作。我可以print()写点其他东西,您在终端上什么也看不到:

>>> from io import StringIO
>>> output = StringIO()
>>> print('Hello world!', file=output)
>>> output.getvalue()
'Hello world!\n'

print()函数调用未在终端上产生输出,并返回了None该输出,然后未回显。



 类似资料:
  • 问题内容: 我需要在另一个类的此Java应用程序中编写打印功能的帮助。 这些功能与printAll我认为是正确的,而其他功能肯定是错误的。 我将在下面写下此问题所需部分的全部功能。 由于实际上没有看到DictionaryADT令人困惑,因此我将其包含在此处。 问题答案: 如果DictionaryADT是具有所有实际实现的类,则需要调用 我相信您然后在DictionaryADT中有Map,类似 要获

  • 问题内容: 这段代码来自http://docs.python.org/2/tutorial/errors.html#predefined-clean-up- actions 我不明白的是print命令末尾的含义。 我还检查了文档http://docs.python.org/2/library/functions.html#print。 没有足够的理解,这是一个错误吗?(似乎不是。它来自官方教程)。

  • 问题内容: 我生成了x的两个矩阵: 第一矩阵:和。 第二矩阵:和。 使用以下代码,第一个矩阵花费了8.52秒完成: 使用此代码,第二个矩阵花费了259.152秒来完成: 运行时间显着不同的原因是什么? 正如评论所说,仅打印需要秒,而给。 正如其他指出它对他们正常工作的人一样,例如,我尝试了Ideone.com,这两段代码以相同的速度执行。 测试条件: 我从 Netbeans 7.2 运行了此测试,

  • 所以我有这个代码,叫我白痴哈哈,但是我不能让它打印7。 代码: 我需要知道如何改变与函数中的参数同名的变量。 任何帮助都将不胜感激,如果你不明白这个问题,我很乐意解释更多。

  • 本文向大家介绍JS打印组合功能,包括了JS打印组合功能的使用技巧和注意事项,需要的朋友参考一下 本文为大家分享了JS打印组合功能,功能全面,供大家参考,具体内容如下 1.局部打印--即想打印什么地方就打印什么地方  解决办法:  将不想打印的地方隐藏起来  <style type="text/css" media=print> .noprint{display : none }  分页的时候用 

  • 问题内容: 我最近切换了操作系统,并正在使用较新的Python(2.7)。在旧系统上,我曾经能够即时打印。例如,假设我有一个计算密集的for循环: 然后当代码完成每次迭代时,它将打印 但是,在我当前的系统上,python似乎缓存了stdout,因此终端空白了几分钟,然后输出: 短期内。然后,几分钟后,它将打印: 等等。如何在到达语句后立即进行python打印? 问题答案: 尝试在打印后调用冲洗标准