我正在编写此代码并且最近遇到了错误。我不知道为什么会这样。理论上,应该打印英文字母。但是,不是英文字母,而是打印符号。 我出于某种原因无法粘贴符号,但如果您自己运行代码,您就会理解我的意思。 我的完整代码发布在下面。
alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFHIJKLMNOPQRSTUVWXYZ0123456789"
choice = input("Would you like to encrypt or decrypt? [e/d]: ")
if choice == "e":
message = input("Please insert the message you would like to use: ")
keyword = input("Please insert the keyword you would like to use: ")
ik = len(keyword)
i = 0
string = ''
for A in message:
message1 = (ord(A)) - 96
key1 = (ord(keyword[i])) - 96
addition = message1 + key1
string += (chr(addition))
if i >= ik:
i = 0
else:
i += 1
print (string)
答案 0 :(得分:0)
你需要加回你最初带走的96 :)或者,使用Caesar密码公式,因为加回96仍会导致出现符号(我已经完成了ocr课程)
addition = message1 + key1 + 96
如果关键字短于消息,则代码将无效,因此请在i上使用模数运算符(%),并在行内使用关键字的长度:
key1 = (ord(keyword[i])) - 96