首页 > 解决方案 > if语句的else部分在python中的for循环之外

问题描述

我有以下python代码

# helper function to simulate brute force attack on low entropy randomness
def simulate_brute_force_attk_key(message:str, cipher:str)->bytes:
    for k in range(2**31):
        bf_key = KeyStream(k)
        for i in range(len(message)):
            xor_value = message[i] ^ cipher[i]
            if xor_value != bf_key.get_key_byte():
                break
        else:
            return k
    return False

上面的代码执行没有错误。我的问题是当我们在 for 循环中对应 if 语句的 else 部分工作时它是如何工作的,而 else 部分在内部 for 循环之外。我的理解是 if 和相应的 else 部分都应该在 for 循环中。我认为我的理解是错误的。请求您帮助理解这一点。谢谢

标签: python-3.x

解决方案


推荐阅读