我刚刚了解了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()
我是编程新手,任何建议将不胜感激。
使用for-else
构造,只有在for
循环不break
时,你才会进入else
块,你的for
循环总是这样做,因为i
不可避免地会与range
生成器3
。因此,您的无限while
循环永远无法到达return
语句,该语句仅在所述else
块中。
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
语句正确格式化。如果你的意思是让它放在第 2if
语句上,你的代码将如下所示:
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!这很有趣,而且超级有用。