我有一个密码学项目,想使用 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 块不起作用,也不知道为什么。 如果您能帮助我,我会非常高兴。
if c in text == " "
没有做你想做的事。它正在检查 c in text
的值(可以是 True
或 False
)是否等于字符串 " "
,这是不可能的。几乎可以肯定,该行所需的唯一代码是 if c == " "
。