我使用了多个嵌套的for
循环。在最后一个循环中有一条if
语句。当计算结果为True
时,所有for
循环都应该停止,但这不会发生。它只是从最里面的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
发布于 2014-01-23 04:33:15
你应该把你的循环放在一个函数里面,然后返回:
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
使用return
会立即退出封闭函数。在此过程中,所有循环都将停止。
发布于 2014-01-23 04:37:56
您可以引发异常
try:
for a in range(5):
for b in range(5):
if a==b==3:
raise StopIteration
print b
except StopIteration: pass
发布于 2014-01-23 04:39:40
为什么不使用生成器表达式:
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
https://stackoverflow.com/questions/21293336
复制相似问题