为什么输出“无”?解开两个打印语句
使用以下函数时会出现一个特殊的问题:
def lyrics(): print("The very first line") print(lyrics())
输出莫名其妙地返回“第一行”,而不是预期的“第一行”第一行”,然后是“无”。
揭开隐藏的面纱真相
这种令人困惑的行为背后的罪魁祸首在于两个打印语句的存在。在歌词函数中,第一个语句负责显示“第一行”。但是,该函数没有显式返回值,这意味着 Python 为其分配了默认值 None。
函数外部的第二个 print 语句然后尝试输出歌词()返回的值。由于该函数实际上返回 None,因此它会在终端上打印“None”。
纠正问题:接受 Return 语句
要纠正这种情况并确保所需的结果输出,修改歌词函数以显式返回一个值。通过添加 return 语句,您可以指定函数生成的值。
例如,考虑以下代码:
def lyrics(): print("The very first line") return None print(lyrics())
现在,代码将正确打印“第一个line”,因为歌词函数中的 return 语句显式返回 None。
理解 Return默认
值得注意的是,如果在函数中省略 return 语句,Python 会自动返回 None。虽然代码中没有明确说明,但这种行为对于理解为什么未显式指定返回值的函数仍然打印 None 至关重要。
其他示例
进一步了解澄清一下,请考虑以下代码片段:
def test1(): print("In function.") a = test1() print(a) # Prints None print(test1()) # Prints "In function." and then None test1() # Prints "In function." and returns None (not printed)
在此示例中,test1() 由于没有返回而隐式返回 None 陈述。因此,后续打印语句的行为如前所述。
为了确保特定的返回值,请使用具有所需值的 return 语句。例如:
def test(): return "ACV" print(test()) # Prints "ACV" a = test() print(a) # Prints "ACV"
通过在 test() 函数中显式返回“ACV”,输出可以正确显示预期值。
以上是为什么 print(lyrics()) 返回'None”,即使函数 `lyrics()` 打印'第一行”?的详细内容。更多信息请关注PHP中文网其他相关文章!