谁能给我正确的理由,因为我预计答案是 9 而结果是“0”?

Can anyone please give me the correct justification , because i expected the anser to be 9 while the result was "0"?

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

print_nums(10)

使用这段代码,我原以为答案是 9,但看到 0 作为答案,我真的很惊讶。请问有人能提供适当的理由吗?

def print_nums(x):
    for i in range(x): # Loop starts. In first iteration of loop, i = 0
        print(i)       # Prints 0, since i = 0
        return         # The function execution stops here and it exits

print_nums(10)

上面的代码只会 运行 并在循环的第一次迭代时停止。这是因为 return 将直接退出该函数,因此函数执行将自行停止。


您可能打算按以下方式使用该功能 -

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

print_nums(10)

输出:

0
1
2
3
4
5
6
7
8
9

在上述情况下你不需要 return 如果它不是 return 你是 using.In 的东西,我不明白你的期望输出为 9。上述函数将打印 0 to x-1.

中的所有数字

如果您希望从 0 to x-1 开始循环并最终打印 x-1,那么您可以这样做 -

def print_nums(x):
    i = 0
    for i in range(x):
        # Some work done here
        pass
    print(i)     # Prints x-1 and returns from the function
    return 

print_nums(10)

输出:

9

希望对您有所帮助!

因为你在for循环中调用了return。所以函数 return 就在第一个循环

之后

你的return放错地方了

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

print_nums(10)

每次都会在新行打印 0-9,如果你只想打印 9 你应该这样做

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

print_nums(10)