为什么从打印语句中得到“无”作为输出?

时间:2019-02-10 19:30:28

标签: python python-3.x function syntax nonetype

def print_name(name):
    print(name)

print(print_name('Annabel Lee'))

为什么会得到以下输出:

Annabel Lee
None

更确切地说,None一词是从哪里来的?

5 个答案:

答案 0 :(得分:1)

因为您正在打印方法print,所以返回值应该是名称,而不是print(name)

答案 1 :(得分:1)

您有两次调用print:一个在print_name内部,另一个在函数范围之外。

内部print_name()会打印传入的name。外面的那个会打印函数print_name返回的内容-因为没有{{ 1}}语句。假设只需要一个打印输出,则可以None而不是在函数中打印它:

return

或者仅调用return而不将其包装在def print_name(name): return name print(print_name('Annabel Lee')) 函数中。

答案 2 :(得分:0)

您的函数未返回任何内容,这就是为什么它不提供任何结果的原因。 不返回的函数返回None。

答案 3 :(得分:0)

您的函数将显示名称,您无需再次使用print()

def print_name(name):
    print(name)

print_name('Annabel Lee')

如果在函数中不使用return,则默认情况下它将返回None。如果您的函数是这样的,则您的代码是正确的:

def print_name(name):
    return name

print(print_name('Annabel Lee'))

答案 4 :(得分:0)

print()函数计算括号中的参数并输出结果。 print(1+1)将打印“ 2”,因为1 + 1的结果是2。就这样,print("abcd".upper())将打印“ ABCD”。

当您调用print(print_name('Annabel Lee'))时,打印函数将尝试计算参数,在这种情况下为print_name('Annabel Lee')。由于print_name()函数不返回任何值(它仅显示'Annabel Lee'),因此返回的值为None。这就是print()函数打印“无”的原因。