鱼C论坛

 找回密码
 立即注册
查看: 1954|回复: 6

[已解决]这个为什么返回是0呀

[复制链接]
发表于 2023-5-6 14:38:11 | 显示全部楼层 |阅读模式

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

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

x
def print_nums():
  for i in range(10):
    print(i)
    return
print_nums()


最佳答案
2023-5-6 17:48:54
这个函数  print_nums()  在执行过程中会遇到  return  语句。当  return  语句被执行时,函数会立即终止,并返回到调用它的地方。在这个例子中, return  语句没有明确的返回值,所以它会默认返回  None 。

你的函数是这样定义的:
def print_nums():
  for i in range(10):
    print(i)
    return

当你调用  print_nums()  时, for  循环会开始执行。在第一次迭代时, i  的值为 0,然后它会执行  print(i)  语句,所以会在屏幕上输出 0。紧接着,函数遇到了  return  语句,所以它会立即终止并返回。因此,你在调用  print_nums()  之后看到的输出是 0。

需要注意的是,你提到返回值是 0,实际上这个函数的返回值是  None 。你看到的 0 是因为  print(i)  语句在函数内执行了。如果你想查看这个函数的返回值,可以这样做:
result = print_nums()
print(result)

这样你会看到输出如下:
0
None

这表示  print_nums()  函数打印了 0(由于  print(i)  语句),并返回了  None 。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-6 15:02:49 | 显示全部楼层
for循环 第一次,i = 0,return 就返回了,所以 i等于0.并不是返回了0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-5-6 15:19:38 | 显示全部楼层
xls6688 发表于 2023-5-6 15:02
for循环 第一次,i = 0,return 就返回了,所以 i等于0.并不是返回了0

我表达错了,为什么i = 0,呀,return终止循环了吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-6 15:28:41 From FishC Mobile | 显示全部楼层
hahadaxiao 发表于 2023-5-6 15:19
我表达错了,为什么i = 0,呀,return终止循环了吗

return在某些场合,要比break霸道的多
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-6 15:29:56 From FishC Mobile | 显示全部楼层
hahadaxiao 发表于 2023-5-6 15:19
我表达错了,为什么i = 0,呀,return终止循环了吗

它不会终止循环,它会终止整个函数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-6 17:48:54 | 显示全部楼层    本楼为最佳答案   
这个函数  print_nums()  在执行过程中会遇到  return  语句。当  return  语句被执行时,函数会立即终止,并返回到调用它的地方。在这个例子中, return  语句没有明确的返回值,所以它会默认返回  None 。

你的函数是这样定义的:
def print_nums():
  for i in range(10):
    print(i)
    return

当你调用  print_nums()  时, for  循环会开始执行。在第一次迭代时, i  的值为 0,然后它会执行  print(i)  语句,所以会在屏幕上输出 0。紧接着,函数遇到了  return  语句,所以它会立即终止并返回。因此,你在调用  print_nums()  之后看到的输出是 0。

需要注意的是,你提到返回值是 0,实际上这个函数的返回值是  None 。你看到的 0 是因为  print(i)  语句在函数内执行了。如果你想查看这个函数的返回值,可以这样做:
result = print_nums()
print(result)

这样你会看到输出如下:
0
None

这表示  print_nums()  函数打印了 0(由于  print(i)  语句),并返回了  None 。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-6 17:51:55 | 显示全部楼层
hahadaxiao 发表于 2023-5-6 15:19
我表达错了,为什么i = 0,呀,return终止循环了吗

是的,return直接终止函数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-23 09:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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