鱼C论坛

 找回密码
 立即注册
查看: 363|回复: 7

[已解决]调用没有return语句的函数会不会返回None

[复制链接]
发表于 2024-1-17 16:23:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. def say():
  2.     print('hello world')

  3. say()
复制代码


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


@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 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

按照这样的逻辑的话,是否在创建任何函数的时候,都必须要写上return语句?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-1-17 17:25:57 | 显示全部楼层
        你只要不要像下面这样调用一个没有返回值的函数,那么,就不会有任何的不妥。
  1. def say():
  2.     print('hello world')

  3. x = say()
  4. print(x)
复制代码

   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-1-17 20:10:19 | 显示全部楼层
jackz007 发表于 2024-1-17 17:25
你只要不要像下面这样调用一个没有返回值的函数,那么,就不会有任何的不妥。

okkkk
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-1-17 22:10:48 From FishC Mobile | 显示全部楼层
return不是必须的,当你不需要返回值时,可以不写
像楼上的代码,就print出了无返回值函数的返回值是None(允行会打印None)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

感谢大哥
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 08:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表