hahadaxiao 发表于 2023-5-6 14:38:11

这个为什么返回是0呀

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

xls6688 发表于 2023-5-6 15:02:49

for循环 第一次,i = 0,return 就返回了,所以 i等于0.并不是返回了0

hahadaxiao 发表于 2023-5-6 15:19:38

xls6688 发表于 2023-5-6 15:02
for循环 第一次,i = 0,return 就返回了,所以 i等于0.并不是返回了0

我表达错了,为什么i = 0,呀,return终止循环了吗

wp231957 发表于 2023-5-6 15:28:41

hahadaxiao 发表于 2023-5-6 15:19
我表达错了,为什么i = 0,呀,return终止循环了吗

return在某些场合,要比break霸道的多

wp231957 发表于 2023-5-6 15:29:56

hahadaxiao 发表于 2023-5-6 15:19
我表达错了,为什么i = 0,呀,return终止循环了吗

它不会终止循环,它会终止整个函数

isdkz 发表于 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 。

Threebody1 发表于 2023-5-6 17:51:55

hahadaxiao 发表于 2023-5-6 15:19
我表达错了,为什么i = 0,呀,return终止循环了吗

是的,return直接终止函数
页: [1]
查看完整版本: 这个为什么返回是0呀