Упражнения по Python для начинающих

Caesar Cipher in Python

Shift every letter three places: code becomes frgh. Learn ord(), chr() and the % trick that wraps z back to a.

  • Начальный
  • Чтение: 2 мин
  • Примеров для запуска: 1
Что вы узнаете
  • Character codes with ord() and chr()
  • Wrapping around the alphabet with % 26
  • Building the encrypted string
shift = 3
cf
or
dg
eh
x, y, z wrap around to a, b, c.

Shift and wrap

Шифр Цезаря - один из самых старых способов шифрования. Каждая буква заменяется той, что стоит на фиксированное число позиций дальше: при сдвиге 3 буква a становится d, а b становится e. Дойдя до конца алфавита, отсчёт продолжается с начала, поэтому x становится a.

Главное

  1. ord(ch) - ord("a") turns a letter into 0 to 25.
  2. (position + shift) % 26 moves it and wraps past z.
  3. chr(new + ord("a")) turns the number back into a letter.

Когда это нужно?

  • Освоить синтаксис и основные понятия Python на коротких и понятных примерах.
  • Заложить прочную основу, прежде чем переходить к более сложным задачам.
  • Запускать код прямо в браузере, не устанавливая Python на компьютер.

Пример кода

Запустить код →
main.py
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.

Упражнения для практики

Попробуйте изменить код по подсказкам ниже. Если менять код и смотреть на результат, урок запомнится гораздо лучше, чем при простом чтении.

  1. Измените входные данные и предскажите результат до запуска.
  2. Добавьте проверку пустых или неверных данных.
  3. Вынесите обработку в отдельную функцию и проверьте её на нескольких наборах данных.
Запустить в компиляторе Python →

Попрактикуйтесь на задаче

Примените материал этого урока к реальной задаче. Каждая задача запускается в браузере, с мгновенными тестами и разбором от ИИ.

Все задачи