如何在Python中打破嵌套for循环?

use*_*181 4 python loops for-loop break

我想知道如何从这样的循环出来:

for a in range(95):
    for b in range(95):
        for c in range(95):
            for d in range(95):
                ...
                do some computings
                ...
                if condition:
                    task completed
Run Code Online (Sandbox Code Playgroud)

任务完成后,继续所有循环和计算.它们必须被打破,但我不知道 - "任务完成"之后的单个break语句将仅在for循环中结束,但它将再次被调用多次 - 所以我们什么也得不到.

在CI中会做a = b = c = d = 95,但在python中不起作用.当然我可以使用while循环,但后来我必须使用X + = 1语句,它看起来很糟糕.

有帮助吗?


关于循环:我使用它来使用暴力破解4-char密码.它不是一个真正的目的 - 仅用于测试.

per*_*eal 12

使用itertools产品:

from itertools import product
for a, b, c, d in product(range(95), range(95), range(95), range(95)):
    print a, b, c, d
    if a == 1: break
Run Code Online (Sandbox Code Playgroud)

更短的版本,谢谢Ashwini:

for a, b, c, d in product(range(95), repeat=4):
    print a, b, c, d
    if a == 1: break
Run Code Online (Sandbox Code Playgroud)

  • `product(range(95),repeat = 4)...` (5认同)
  • 我最喜欢这个.循环通常不需要嵌套. (2认同)