如何在Python中使用break跳出多层for循环?
链接: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
下一篇:
【golang】协程和线程的区别