Одним из первых в истории примеров шифрования считаются закодированные послания Юлия Цезаря. Римскому полководцу необходим было посылать письменные приказы своим генералам, но он не желал, чтобы в случае чего их прочитали недруги. В результате он стал шифровать свои послания довольно простым методом, который впоследствии стали называть кодом Цезаря.
Идея шифрования была совершенно тривиальной и заключалась в циклическом сдвиге букв на три позиции. В итоге буква 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)