陷入'while True'循环蟒蛇



我刚刚了解了Python中的breakreturn

在我为熟悉这两个语句而编写的玩具代码中,我陷入了一个循环,但我不知道为什么。这是我的代码:

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()

这只是格式设置。但在此示例中,代码只会运行一次,因为它会立即返回并退出函数。

我认为这可能是同时使用breakreturn的更好示例:

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!这很有趣,而且超级有用。

最新更新