我用字典写了一个凯撒密码。代码完美工作,直到输入不是字典部分的字符(如空格或逗号)。我决定来处理与else语句的异常,但代码保持跳过else语句,并返回错误:我的代码跳过了If-Else块的else语句
"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)
此外,我认为条件应该是'如果字母Actual_Key:' – jdehesa
识别可能只是一个粘贴错误。实际的问题是第一条if语句永远是真实的 – Maresh