Шифр Цезаря: шифрование сообщения
Мы собираемся показать Вам четыре простые программы, чтобы представить аспекты обработки строк в Python. Они целенаправленно просты, лабораторные задачи будут значительно сложнее.
Первая задача, которую мы хотим показать Вам, называется Шифр Цезаря - подробнее здесь: https://en.wikipedia.org/wiki/Caesar_cipher.
Этот шифр был (вероятно) изобретен и использован Гаем Юлием Цезарем и его войсками во время Галльских войн. Идея довольно проста - каждая буква сообщения заменяется ближайшим последующим (A становится B, B становится C и т.д.) Единственное исключение - Z, которое становится A.
Программа в редакторе является очень простой (но работающей) реализацией алгоритма.
Мы написали ее, используя следующие предположения:
- она принимает только латинские буквы (примечание: римляне не использовали ни пробелы, ни цифры);
- все буквы сообщения находятся в верхнем регистре (примечание: римляне знали только заглавные буквы).
Давайте проследим код:
- строка 02: попросим пользователя ввести не зашифрованное, однострочное сообщение;
- строка 03: создадим строку для зашифрованного сообщения (пока пустую);
- строка 04: начать замены в сообщении;
- строка 05: если текущий символ не является алфавитным...
- строка 06: ... проигнорировать его;
- строка 07: преобразовать букву в верхний регистр (желательно делать это всегда, а не проверять, нужно это или нет);
- строка 08: получить код буквы и увеличить его на единицу;
- строка 09: если полученный код имеет "окончания" латинского алфавита (если он больше, чем код Z)...
- строка 10: ... изменить его на код A;
- строка 11: добавить полученный символ в конец зашифрованного сообщения;
- строка 13: напечатайте зашифрованное сообщение.
Код, переданный с этим сообщением:
AVE CAESAR
Вывод:
BWFDBFTBS
output
Проведите собственное тестирование.