Python 为什么我会得到';无';作为打印语句的输出?
为什么我会得到以下输出:Python 为什么我会得到';无';作为打印语句的输出?,python,python-3.x,function,syntax,nonetype,Python,Python 3.x,Function,Syntax,Nonetype,为什么我会得到以下输出: def print_name(name): print(name) print(print_name('Annabel Lee')) 更准确地说,单词None从何而来?因为您正在打印方法print,所以返回的应该是name,而不是print(name)您有两个调用print:一个在print\u name内部,另一个在函数范围之外 print_name()中的一个打印传入的name。外部的一个打印函数print\u name返回的内容-即None,因为您没有
def print_name(name):
print(name)
print(print_name('Annabel Lee'))
更准确地说,单词
None
从何而来?因为您正在打印方法print
,所以返回的应该是name,而不是print(name)您有两个调用print
:一个在print\u name
内部,另一个在函数范围之外
print_name()
中的一个打印传入的name
。外部的一个打印函数print\u name
返回的内容-即None
,因为您没有return
语句。假设您只需要一个打印输出,您应该返回它,而不是在函数中打印它:
Annabel Lee
None
或者只需调用print\u name
,而不将其包装在print
函数中。您的函数没有返回任何内容,这就是它没有给出任何内容的原因。
非返回函数返回时没有任何值。您的函数打印名称,无需再次使用print()
def print_name(name):
return name
print(print_name('Annabel Lee'))
如果不在函数中使用return
,默认情况下,它将返回None
。如果函数如下所示,则代码是正确的:
def print_name(name):
print(name)
print_name('Annabel Lee')
print()
函数计算括号中的参数并打印结果。
打印(1+1)
将打印“2”,因为1+1的结果是2。就像那样,打印(“abcd”.upper())
将打印“abcd”
调用print(print\u name('Annabel Lee'))
时,print函数尝试计算参数,在本例中为print\u name('Annabel Lee')
。由于print\u name()
函数不返回任何值(它只打印'Annabel Lee'),因此返回的值为None。这就是为什么print()
函数打印“None”。函数print\u name
返回None
,因为没有指定返回。在最终打印语句中打印返回值。None
不是输出;这是返回值。这两个概念完全不同。令人困惑的是,交互式解释器在计算函数调用时,会将其返回值打印到标准输出。
def print_name(name):
return name
print(print_name('Annabel Lee'))