我不太了解从以下位置收到的输出:
print(print(print(print('aaa'))))
aaa
没有
没有
第一个aaa很清楚。但是我认为第二个print(aaa)将抛出错误,因为未定义变量aaa ...
答案 0 :(得分:7)
print(print('aaa'))
外部EasyVideoCallback
将不接受内部print
打印到标准输出的内容,而是内部print
返回的内容作为参数。 print
函数从不返回任何内容(等同于返回print
)。这就是为什么您看到此输出的原因。
答案 1 :(得分:2)
这是一个执行相同操作的示例,您将更好地理解它:
def f():
print('Hello')
print(f())
输出:
Hello
None
None
到了最后,因为您基本上在做print(print('Hello'))
,print
在python解释器中写东西,当您执行type(print())
时它也会输出:{{1 }}这部分是<class 'NoneType'>
。
这就是print(None)
的输出包含print(print(print('aaa')))
的原因
答案 2 :(得分:2)
首先,我们只是拆分代码
=ARRAYFORMULA(MMULT(IF(L3:N5=L1:N1,TRANSPOSE(P3:P5),TRANSPOSE(Q3:Q5)),TRANSPOSE(COLUMN(L1:N1))^0))
现在您了解了! (Python 3)
答案 3 :(得分:1)
show
在标准输出上打印并返回print
。您的第二条None
语句得到第一个print
的结果,即print
答案 4 :(得分:1)
在python中,当函数未明确返回任何内容时,它将返回None
。
类似print
的函数可以执行操作,但不应返回任何内容,因此它返回None。打印功能可能是这样的:
import sys
def print(*args, sep=' ', end='\n', file=sys.stdout, flush=False)
for arg in args:
file.write(str(arg))
if arg is not args[-1]:
file.write(str(sep))
file.write(str(end))
if flush:
sys.stdout.flush()
等同于:
def print(*args, sep=' ', end='\n', file=sys.stdout, flush=False):
# The same code
return None
在两种情况下,您都会得到
>>> print('Hello world')
Hello world
>>> print(print('Hello world'))
Hello world
None
希望这会有所帮助。