我刚刚了解了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()
我是编程新手,任何建议将不胜感激。
答案 0 :(得分:4)
使用for-else
构造,如果else
循环不for
,则仅进入break
块,而for
循环总是这样做是因为{{ 1}}不可避免地成为i
生成器的3
。因此,您的无限range
循环将永远无法到达while
语句,该语句仅在所说的return
块中。
答案 1 :(得分:-2)
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!这很有趣,而且非常有用。