Ich kann nicht scheinen, dieses Programm zu bekommen, das ich für ein Projekt tun sollte, um die korrekte Ausgabe auszugeben, obwohl ich versucht habe, es mehrmals zu arbeiten. Das Projekt lautet:Python Caesar Cipher Projekt, falsche Ausgabe
Ihr Programm muss eine verschlüsselte Textdatei namens "encrypted. Txt" dekodieren. Die Person, die sie schrieb, verwendete eine Chiffre, die in "key.txt" spezifiziert wurde. Diese Schlüsseldatei aussehen würde, ähnlich der folgenden:
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
Die linke Spalte stellt den Klartextbuchstabe, und die rechte Spalte zeigt die entsprechenden chiffrierten Text. Ihr Programm sollte die Datei "encrypted.txt" mit "key.txt" dekodieren und den Klartext in "decrypted.txt" schreiben. Ihr Programm sollte Groß- und Kleinbuchstaben in der verschlüsselten ohne zwei Schlüsseldateien (oder Duplizieren von Schlüsseln) behandeln. Möglicherweise haben Sie den entschlüsselten Text in Großbuchstaben. Sie sollten Zeichen im verschlüsselten Text verarbeiten können, die nicht in Ihrer Schlüsseldatei enthalten sind. In diesem Fall muss nur die Entschlüsselung das Zeichen wiederholen. Dadurch können Sie in Ihrem verschlüsselten Text Leerzeichen einfügen, die bei der Entschlüsselung Leerzeichen bleiben. Während Sie ein Programm schreiben können, um die Schlüsseldatei zu erstellen - fügen Sie das NICHT in die Einreichung ein. Sie können die verschlüsselten und die wichtigsten Textdateien manuell erstellen. Verwenden Sie entweder die Option "new file" in Python Shell (vergessen Sie nicht, als txt zu speichern) oder einen Editor wie Notepad. Benutze kein Wort.
Hier ist mein Code:
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)
Der einzige Ausgang ich erhalte, ist:
,?
was falsch ist.
Ihre Schlüsseldatei enthält nur Großbuchstaben, aber die 'encrypted.txt' enthält Kleinbuchstaben und Sie konvertieren die Groß-/Kleinschreibung nicht. – Barmar
Es ist genau dort in der Anleitung: ** Ihr Programm sollte Groß-und Kleinbuchstaben in der verschlüsselten ohne zwei Schlüsseldateien (oder Duplizieren von Schlüsseln) behandeln. ** – Barmar
Verwenden Sie ein Wörterbuch statt einer Suche nach einer Liste. – Barmar