Одним из первых в истории примеров шифрования считаются закодированные послания Юлия Цезаря. Римскому полководцу необходим было посылать письменные приказы своим генералам, но он не желал, чтобы в случае чего их прочитали недруги. В результате он стал шифровать свои послания довольно простым методом, который впоследствии стали называть кодом Цезаря.
Идея шифрования была совершенно тривиальной и заключалась в циклическом сдвиге букв на три позиции. В итоге буква A превращалась в D, B – в E, C – в F и т. д. Последние три буквы алфавита переносились на начало. Таким образом, буква X становилась A, Y – B, а Z – C. Цифры и другие символы не подвергались шифрованию.
Напишите программу, реализующую код Цезаря. Позвольте пользователю ввести фразу и количество символов для сдвига, после чего выведите результирующее сообщение. Убедитесь в том, что ваша программа шифрует как строчные, так и прописные буквы. Также должна быть возможность указывать отрицательный сдвиг, чтобы можно было использовать вашу программу для расшифровки фраз.
message = input("Введите сообщение: ")
shift = int(input("Введите сдвиг: "))
new_message = ""
for ch in message:
if ch >= "a" and ch <= "z":
pos = ord(ch) - ord("a")
pos = (pos + shift) % 26
new_char = chr(pos + ord("a"))
new_message = new_message + new_char
elif ch >= "A" and ch <= "Z":
pos = ord(ch) - ord("A")
pos = (pos + shift) % 26
new_char = chr(pos + ord("A"))
new_message = new_message + new_char
else:
new_message = new_message + ch
print("Новое сообщение", new_message)
