Я пытаюсь закодировать Цезаря Сайфера, но он работает только со строчными буквами, и я пытаюсь заставить его напечатать исходные заглавные буквы.
def encrypt(message, key):
alphabet_lower = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]
if type(message) == str and type(key) == int:
Letters = message.lower()
LowerLetters = list(Letters)
BacktoStr = []
for i in LowerLetters:
if i.strip() and i in alphabet_lower:
BacktoStr.append(alphabet_lower[(alphabet_lower.index(i) + key) % 26])
else:
BacktoStr.append(i)
FinalEncrypt = "".join(BacktoStr)
return(FinalEncrypt)
else:
return("Invalid Input")
Когда я запускаю код, например: encrypt("Hello world",12)
Я получаю правильный вывод, но он в нижнем регистре. 'tqxxa iadxp'
Как получить заглавные буквы, чтобы они оставались заглавными, когда я возвращаю вывод? Использование python 3.7.0