我刚刚学习了Python语言中的break和return。
在我为熟悉这两个语句而编写的玩具代码中,我陷入了一个循环,但我不知道为什么。下面是我的代码:
def break_return():
while True:
for i in range(5):
if i < 2:
print(i)
if i == 3:
break
else:
print('i = ', i)
return 343
break_return()我是编程新手,任何建议都将不胜感激。
发布于 2018-09-10 08:50:15
对于for-else结构,只有在else循环没有break的情况下才会进入for块,而for循环总是这样做的,因为i不可避免地会随着range生成器变成3。因此,您的无限while循环永远不能到达return语句,该语句只在上述else块中。
发布于 2018-09-10 09:15:13
nvm我在这超级错了
首先,当您在Python中定义函数时,属于该函数的任何代码都应该在同一缩进块中。考虑到这一点,您的代码将如下所示:
def break_return():
while True:
for i in range(5):
if i < 2:
print(i)
if i == 3:
break
else:
print('i = ', i)
return 343
break_return()我看到的下一个问题是您的else语句没有用if语句正确格式化。如果你想让它出现在第二个if语句中,你的代码应该是这样的:
def break_return():
while True:
for i in range(5):
if i < 2:
print(i)
if i == 3:
break
else:
print('i = ', i)
return 343
break_return()这只是格式化。但在本例中,代码将只运行一次,因为它会立即返回并退出函数。
我认为这可能是同时使用break和return的一个更好的例子
def break_return(value):
for i in range(5):
print(i)
if i == 3:
break #This exits the for loop
if i == 4:
print("This won't print!")
#Won't print because the loop "breaks" before i ever becomes 4
return value * 2 #Returns the input value x 2
print(break_return(30)) #Display the return value of break_return()这演示了break如何退出for循环,以及return如何从函数返回值。
上面代码的输出是:
0 #Value of i
1 #Value of i
2 #Value of i
3 #Value of i
60 #The value returned by the function很高兴听到你在学习Python!它非常有趣,而且非常有用。
https://stackoverflow.com/questions/52249762
复制相似问题