首页 > 解决方案 > 如何摆脱这 4 个不同的 for 循环

问题描述

password = '1567'
for i in range(0,10):
    for x in range (0,10):
        for y in range (0,10):
            for w in range (0,10):
                a = str(i)+str(x)+str(y)+str(w)
                print(a)
                if a == password:
                    print("Your password is: "+a)
break

我一直在尝试让密码破解一次 == 密码请帮助

标签: python-3.xpasswords

解决方案


一个 break 将停止当前的 for 循环。它不会破坏所有其他循环。

如果当前的 for 循环是嵌套的,它将继续父循环,并继续循环到父循环中的下一个迭代值。

您要么必须在每个循环中添加密码检查条件并中断,要么您为什么不直接返回?

def find_password_brute_force(password):
    for i in range(0, 10):
        for x in range(0, 10):
            for y in range(0, 10):
                for w in range(0, 10):
                    a = str(i) + str(x) + str(y) + str(w)
                    # print(a)
                    if a == password:
                        print("Your password is: " + a)
                        return a

password = '1567'
find_password_brute_force(password=password)

PS:将此类代码用于邪恶目的可能会给您带来麻烦-不要这样做。

我分享它只是为了你的理解。


推荐阅读