Vad*_*der 24 python loops for-loop break python-2.7
我正在使用多个嵌套for循环.在最后一个循环中有一个if声明.当评估True所有for循环应该停止,但这不会发生.它只break离开最里面的for循环,而不是继续前进.如果break遇到语句,我需要所有循环停止.
我的代码:
for i in range(1, 1001):
for i2 in range(i, 1001):
for i3 in range(i2, 1001):
if i*i + i2*i2 == i3*i3 and i + i2 + i3 == 1000:
print i*i2*i3
break
Run Code Online (Sandbox Code Playgroud)
iCo*_*dez 46
你应该把你的循环放在一个函数中,然后返回:
def myfunc():
for i in range(1, 1001):
for i2 in range(i, 1001):
for i3 in range(i2, 1001):
if i*i + i2*i2 == i3*i3 and i + i2 + i3 == 1000:
print i*i2*i3
return # Exit the function (and stop all of the loops)
myfunc() # Call the function
Run Code Online (Sandbox Code Playgroud)
使用return立即退出封闭功能.在此过程中,将停止所有循环.
dug*_*res 17
你可以提出异常
try:
for a in range(5):
for b in range(5):
if a==b==3:
raise StopIteration
print b
except StopIteration: pass
Run Code Online (Sandbox Code Playgroud)
为什么不使用生成器表达式:
def my_iterator()
for i in range(1, 1001):
for i2 in range(i, 1001):
for i3 in range(i2, 1001):
yield i,i2,i3
for i,i2,i3 in my_iterator():
if i*i + i2*i2 == i3*i3 and i + i2 + i3 == 1000:
print i*i2*i3
break
Run Code Online (Sandbox Code Playgroud)