我似乎无法得到这个程序我应该为一个项目,以输出正确的输出做,即使我试图得到它的工作多次。该项目是:Python的凯撒密码的项目,不正确的输出
您的程序需要解码一个名为“encrypted.txt”的加密文本文件。编写它的人使用“key.txt”中指定的密码。此密钥文件将类似于以下内容:
A B B C C D D E E F F G G H H I I J J K K L L M M N N O O P P Q Q R R S S T T U U V V W W X X Y Y Z Z A
左列代表明文字母,右列表示对应的密文。 你的程序应该使用“key.txt”解码“encrypted.txt”文件,并写入了明文“decrypted.txt”。 你的程序应该处理加密的大写和小写字母,而不需要两个密钥文件(或复制密钥)。您可能拥有全部大写的解密文本。 您应该能够处理加密文本中不在密钥文件中的字符。在这种情况下,只需要解密重复该字符。这将允许您在加密文本中有空格,并在解密时保留空格。 虽然你可能编写一个程序来创建密钥文件 - 不要在提交中包含它。您可以手动创建加密和密钥文本文件。使用Python Shell中的“新文件”选项(不要忘记保存为txt)或编辑器(如记事本)。不要用字。
这里是我的代码:
keyFile = open("key.txt", "r")
keylist1= []
keylist2 = []
for line in keyFile:
keylist1.append(line.split()[0])
keylist2.append(line.split()[1])
keyFile.close()
encryptedfile = open("encrypted.txt", "r")
lines = encryptedfile.readlines()
currentline = ""
decrypt = ""
for line in lines:
currentline = line
letter = list(currentline)
for i in range(len(letter)):
currentletter = letter[i]
if not letter[i].isalpha():
decrypt += letter[i]
else:
for o in range(len(keylist1)):
if currentletter == keylist1[o]:
decrypt += keylist2[o]
print(decrypt)
我得到的唯一的输出是:
,?
这是不正确。
您的密钥文件只包含大写字母,但'encrypted.txt'包含小写,而你不转换的情况下。 – Barmar
这是正确的,在说明:**,你的程序应该处理在加密的大写和小写字母,而无需两个关键文件(或复制键)** – Barmar
不是搜索列表,使用字典。 – Barmar