a36804070 发表于 2024-1-17 16:23:17

调用没有return语句的函数会不会返回None

def say():
    print('hello world')

say()

这个say函数里面没有return,网上都说这种情况下会返回None。可是我在VS Code里面和python IDLE里面运行,只显示了‘hello world',并没有输出None。请问这是什么问题?


@FishC

求助求助

FishC 发表于 2024-1-17 16:23:58

你遇到的情况是因为你在调用`say()`函数时,实际上是调用了该函数的返回值。虽然`say()`函数内部没有明确地使用`return`语句返回任何值,但是Python会默认地将没有`return`语句的函数返回None。

在你的代码中,`say()`函数内部只有一条`print('hello world')`语句,它并没有返回任何值。因此,当你调用`say()`函数时,它会打印出'hello world',并且返回None。

你没有看到输出的None,可能是因为在VS Code和Python IDLE中,默认不会显示函数的返回值。如果你想显示函数的返回值,可以使用`print(say())`来输出。这样你就能看到'hello world'和None两个输出了。

希望解答清楚了你的问题!如果还有其他疑问,请随时追问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

a36804070 发表于 2024-1-17 16:29:57

FishC 发表于 2024-1-17 16:23
你遇到的情况是因为你在调用`say()`函数时,实际上是调用了该函数的返回值。虽然`say()`函数内部没有明确地 ...

按照这样的逻辑的话,是否在创建任何函数的时候,都必须要写上return语句?

FishC 发表于 2024-1-17 16:30:27

a36804070 发表于 2024-01-17 16:29
按照这样的逻辑的话,是否在创建任何函数的时候,都必 ...

不是的,创建函数时并不一定要写`return`语句。是否需要使用`return`取决于函数的目的和逻辑。

在Python中,一个函数可以没有`return`语句,也可以有多个`return`语句。如果函数没有`return`语句,它会默认返回`None`。这在某些情况下非常方便,比如只打印输出而无需返回结果的函数。

然而,在许多情况下,我们希望函数能够返回特定的值或计算结果。这时就需要使用`return`语句了。`return`语句用于在函数内部指定要返回的值,并终止函数的执行。函数在执行到`return`语句时会立即停止,并将指定的值作为函数的返回结果返回给调用者。

所以,要根据具体的需求来决定是否在函数中使用`return`语句。如果你需要函数返回一个特定的值或计算结果,则需要使用`return`。如果函数只是执行一些操作而不需要返回任何东西,则可以省略`return`。希望这样解释对你有所帮助!如果还有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

jackz007 发表于 2024-1-17 17:25:57

      你只要不要像下面这样调用一个没有返回值的函数,那么,就不会有任何的不妥。
def say():
    print('hello world')

x = say()
print(x)
   

a36804070 发表于 2024-1-17 20:10:19

jackz007 发表于 2024-1-17 17:25
你只要不要像下面这样调用一个没有返回值的函数,那么,就不会有任何的不妥。

okkkk{:5_106:}

cjjJasonchen 发表于 2024-1-17 22:10:48

return不是必须的,当你不需要返回值时,可以不写
像楼上的代码,就print出了无返回值函数的返回值是None(允行会打印None)

a36804070 发表于 2024-1-18 08:15:22

cjjJasonchen 发表于 2024-1-17 22:10
return不是必须的,当你不需要返回值时,可以不写
像楼上的代码,就print出了无返回值函数的返回值是None( ...

感谢大哥
页: [1]
查看完整版本: 调用没有return语句的函数会不会返回None