Ich schrieb eine Caesar-Chiffre mit Wörterbüchern. Der Code funktioniert einwandfrei, bis ein Zeichen eingegeben wird, das nicht Teil des Wörterbuchs ist, z. B. ein Leerzeichen oder ein Komma. Ich beschloss, diese Ausnahmen mit einer anderen Aussage zu handhaben, aber der Code hält die else-Anweisung übersprungen und gibt den Fehler:Mein Code überspringt die Else-Anweisung von If-Else Block
"Key Error: ' '".
Actual_Key = {"A":0, "B":1, "C":2, "D":3, "E":4, "F":5, "G":6, "H":7, "I":8,
"J":9, "K":10, "L":11, "M":12, "N":13, "O":14, "P":15, "Q":16, "R":17,
"S":18, "T":19, "U":20, "V":21, "W":22, "X":23, "Y":24, "Z":25}
Reverse_Key = {0:"A", 1:"B", 2:"C", 3:"D", 4:"E", 5:"F", 6:"G", 7:"H",
8:"I", 9:"J", 10:"K", 11:"L", 12:"M", 13:"N", 14:"O", 15:"P", 16:"Q",
17:"R", 18:"S", 19:"T", 20:"U", 21:"V", 22:"W", 23:"X", 24:"Y", 25:"Z"}
encrypted_message = ""
message = input("Please enter your message: \n> ").upper()
key = int(input("Enter a key number between 0 and 26 \n> "))
for letter in message:
if letter in message:
new_value = Actual_Key[letter] + key
if new_value >= 26:
new_value = new_value - 26
citext = str(Reverse_Key[new_value])
encrypted_message += citext
else:
encrypted_message += letter
print (encrypted_message)
Auch ich denke, die bedingte in Actual_Key 'wenn Brief sein sollte:' – jdehesa
identation wahrscheinlich nur ein Einfügen Fehler. Das eigentliche Problem ist die erste if-Anweisung, die immer wahr ist – Maresh