我无法获得带有空格字符的输出

问题描述 投票:0回答:1

我有一个密码学项目,想使用 python 解密句子。 我编写了这段代码,但无法获得输出,其中单词之间有空格。

def vigenere_decrypt(key: str, text: str) -> str:
    decrypted_text = ""
    encrypted_text = text.replace(" ", "")
    key_length = len(key)


    for i, char in enumerate(encrypted_text): #ex. 0 y, 1 a...
       
        key_char = key[i % key_length] # ex. key = KEY, text = MESSAGE => KEYKEYK
        shifted_char = (ord(char) - (ord(key_char))) % 26
        
        for c in text:
            if c in text == " ":
                decrypted_char = " "
            else:
                decrypted_char = chr((shifted_char) + ord('a'))
        decrypted_text += decrypted_char
    
    return decrypted_text
    raise NotImplementedError()
print(vigenere_decrypt("math", "yadl ut ahbpxu") )

我猜我的 for c in text 块不起作用,也不知道为什么。 如果您能帮助我,我会非常高兴。

python cryptography vigenere
1个回答
0
投票

if c in text == " "
没有做你想做的事。它正在检查
c in text
的值(可以是
True
False
)是否等于字符串
" "
,这是不可能的。几乎可以肯定,该行所需的唯一代码是
if c == " "

© www.soinside.com 2019 - 2024. All rights reserved.