jeudi 21 septembre 2017

My Code skips the else statement of If-Else block

I wrote a Caesar cipher using dictionaries. The code works perfectly until a character which is not a part of the dictionary such as a whitespace or comma is entered. I decided to handle those exceptions with an else statement but the code keeps skipping the else statement and returns the error "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)

Aucun commentaire:

Enregistrer un commentaire