链接:https://www.zhihu.com/question/37076998/answer/935963167
五种方法大合集!下面用一个例子说明:三进制递增计数,从000~222,循环到111退出。
A. flag大法flag = True
for i in range(3):
for j in range(3):
for k in range(3):
print(i, j, k)
if i == j == k == 1:
flag = False
print('break')
break
if not flag:
break
if not flag:
break
B. 用循环的else分支for i in range(3):
for j in range(3):
for k in range(3):
print(i, j, k)
if i == j == k == 1:
print('break')
break
else:
continue
break
else:
continue
break
C. 打包进函数def loop():
for i in range(3):
for j in range(3):
for k in range(3):
print(i, j, k)
if i == j == k == 1:
print('break')
return
loop()
D. 抛出异常class Break(Exception):
pass
try:
for i in range(3):
for j in range(3):
for k in range(3):
print(i, j, k)
if i == j == k == 1:
raise Break('break')
except Break as e:
print(e)
E. 笛卡尔积在有篇博文里看到的奇技淫巧 ,看起来很酷的亚子(虽然实用范围有点受限)from itertools import product
for i, j, k in product(range(3), range(3), range(3)):
print(i, j, k)
if i == j == k == 1:
print('break')
break
如何在Python中使用break跳出多层for循环?
最新推荐文章于 2024-05-07 21:54:29 发布