私はこのプログラムを得ることができません。私はそれが複数回動作するようにしても、正しい出力を出力するためにプロジェクトを行うことになっています。プロジェクトは:Python Caesar Cipherプロジェクト、間違った出力
あなたのプログラムは "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
左の列には、平文の文字を表し、右側の列には、対応する暗号文を表します。 プログラムは "encrypted.txt"ファイルを "key.txt"を使用してデコードし、平文を "decrypted.txt"に書き込む必要があります。 あなたのプログラムは、2つのキーファイル(またはキーの複製)を持たずに、暗号化された大文字と小文字の両方を処理する必要があります。復号化されたテキストは、すべて大文字にすることができます。 キーファイルにない暗号化されたテキストの文字を処理できるはずです。その場合、復号化に文字を繰り返すようにしてください。これにより、暗号化されたテキストにスペースを残して、解読する際にスペースを残すことができます。 キーファイルを作成するプログラムを作成することもできますが、提出物にキーファイルを含めないでください。暗号化された主要なテキストファイルを手動で作成することができます。 Pythonシェルの "新しいファイル"オプション(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
以下の手順に従ってください:**あなたのプログラムは、2つのキーファイル(またはキーの複製)を持たずに、暗号化された大文字と小文字の両方を扱う必要があります。** – Barmar
リストを検索する代わりに辞書を使用します。 – Barmar