Caesar Cipher in Python
Shift every letter three places: code becomes frgh. Learn ord(), chr() and the % trick that wraps z back to a.
- Character codes with ord() and chr()
- Wrapping around the alphabet with % 26
- Building the encrypted string
cfordgehShift and wrap
Шифр Цезаря - один из самых старых способов шифрования. Каждая буква заменяется той, что стоит на фиксированное число позиций дальше: при сдвиге 3 буква a становится d, а b становится e. Дойдя до конца алфавита, отсчёт продолжается с начала, поэтому x становится a.
Главное
ord(ch)-ord("a")turns a letter into 0 to 25.- (position + shift)
%26 moves it and wraps past z. chr(new + ord("a"))turns the number back into a letter.
Когда это нужно?
- Освоить синтаксис и основные понятия Python на коротких и понятных примерах.
- Заложить прочную основу, прежде чем переходить к более сложным задачам.
- Запускать код прямо в браузере, не устанавливая Python на компьютер.
Пример кода
message = "code"
shift = 3
# Shift each lowercase letter and wrap after z.
encrypted = "".join(
chr((ord(character) - ord("a") + shift) % 26 + ord("a"))
for character in message
)
print(encrypted)
Результат выполнения
frgh
Разбор кода
Функция ord() возвращает числовой код символа. Вычисление ord(character) - ord("a") превращает букву в позицию от 0 до 25, затем прибавляется shift и берётся остаток от деления на 26, чтобы после z вернуться к началу. Функция chr() превращает новую позицию обратно в символ, поэтому "code" становится "frgh".
Измените значения и запустите программу в онлайн-компиляторе Python CodeUtility без локальной установки Python.
Упражнения для практики
Попробуйте изменить код по подсказкам ниже. Если менять код и смотреть на результат, урок запомнится гораздо лучше, чем при простом чтении.
- Измените входные данные и предскажите результат до запуска.
- Добавьте проверку пустых или неверных данных.
- Вынесите обработку в отдельную функцию и проверьте её на нескольких наборах данных.
Попрактикуйтесь на задаче
Примените материал этого урока к реальной задаче. Каждая задача запускается в браузере, с мгновенными тестами и разбором от ИИ.
- DNA to RNA Transcription Build an RNA string by replacing every DNA character with its partner. Легко