これは私の課題です:
秘密のメッセージを解読するプログラムを書いてください。
最初に、スクランブルされたアルファベットの入力をユーザーに求める必要があります。次に、秘密のメッセージを要求する必要があります。最後に、スクランブルなしのバージョンを出力します。
スクランブルされたアルファベットには、正確に 26 文字の入力があることに注意してください。すべてのアルファベット文字は、デコードされた同等の文字に変換され (WHILE ループが必要です)、他のすべての非アルファベット文字は、変換されていない場合とまったく同じように出力される必要があります。
これまでの私のコードは次のとおりです。
decrypt = ["*"] * 26
scram_alphabet = input("Please input the scrambled alphabet in order: ")
while len(scram_alphabet) != 26:
scram_alphabet = input("Please input the scrambled alphabet in order. The alphabet must have 26 characters: ")
num = 0
for each_letter in scram_alphabet:
decrypt[num] = ord(each_letter)
num = num + 1
print()
print("Your scrambled alphabet is: ", end = "")
for num in range (26):
print(chr(decrypt[num]), end = "")
print()
print()
msg = input("Now input your scrambled message: ")
print()
print()
alphabet = 65
for s in range (26):
decrypt[s] = (alphabet)
alphabet = alphabet + 1
print("The unscrambled alphabet is: ", end = "")
for num in range (26):
print(chr(decrypt[num]), end = "")
print()
print()
print("Your unscrambled message reads: ")
for alpha in msg.upper():
if alpha < "A" or alpha > "Z":
print(alpha, end="")
else:
ord_alpha = ord(alpha)
print (chr(decrypt[ord_alpha - 65]), end = "")
例: スクランブルされたアルファベット = XQHAJDENKLTCBZGUYFWVMIPSOR 、スクランブルされたメッセージ = VNKW KW BO 1WV WJHFJV BJWWXEJ!
最後の print ステートメントに到達するまで、すべて正常に機能します。そこでは、スクランブルされていないメッセージがスクランブルされたメッセージと同じであることが示されています。命令で while ループが必要であることはわかっていますが、これを使用してアルファベットをデコードする方法がわかりませんでした。
ヘルパーはいますか?