Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么print函数返回None?_Python_Python 3.x_Printing - Fatal编程技术网

Python 为什么print函数返回None?

Python 为什么print函数返回None?,python,python-3.x,printing,Python,Python 3.x,Printing,我试图理解为什么外部的打印返回无 >>> a = print(print("Python")) Python None >>> print(type(a)) <class 'NoneType'> >a=print(print(“Python”)) python 没有一个 >>>印刷品(a型) 我注意到: >>> a = print("hey") hey >>> type(a) <class 'NoneT

我试图理解为什么外部的
打印
返回

>>> a = print(print("Python"))
Python
None
>>> print(type(a))
<class 'NoneType'>
>a=print(print(“Python”))
python
没有一个
>>>印刷品(a型)
我注意到:

>>> a = print("hey")
hey
>>> type(a)
<class 'NoneType'>
>a=打印(“嘿”)
嘿
>>>类型(a)
有人能解释一下这里发生了什么吗?谢谢

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

那是因为
print()
没有返回的内容;它的工作是将参数转换为字符串后,将其写入文件对象(默认为
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
,然后没有回显。

print()
打印间隙,而不是
None
。作为默认参数
end
@sacma:printing与returning不同。因此
print
始终返回
None
?是。检查文档。@Matthias:print()函数文档没有明确提到
None
返回(因为这是默认值)。