# Step-by-step: the Caesar cipher (part 4540)

Пройдём задачу шаг за шагом — такой формат удобен для первого знакомства с алгоритмами.

## Задача

Реализовать шифр Цезаря: сдвинуть каждую букву строки на фиксированное число позиций в алфавите.

## Решение

```python
def caesar(text: str, shift: int) -> str:
    result = []
    for ch in text:
        if ch.isalpha():
            base = ord('A') if ch.isupper() else ord('a')
            result.append(chr((ord(ch) - base + shift) % 26 + base))
        else:
            result.append(ch)
    return ''.join(result)


print(caesar("Hello, World!", 3))
```

## Как это работает

Буква переводится в номер внутри алфавита, к номеру прибавляется сдвиг, а остаток от деления на 26 обеспечивает «зацикливание» алфавита. Прочие символы не меняются.

## Пример работы

```text
Khoor, Zruog!
```

## Сложность

O(n) по времени, O(n) по памяти под результат.


## Разбор по шагам

1. **Шаг 1. Входные данные.** Проверяем, что приходит в функцию, и какие значения считаются корректными.
2. **Шаг 2. Основной цикл.** Именно здесь происходит вся работа; следим за изменениями переменных на каждой итерации.
3. **Шаг 3. Результат.** Убеждаемся, что возвращаемое значение соответствует условию задачи, включая крайние случаи.

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

**Читайте также:**

[переводится](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [каждой](https://articlescad.com/b-387555.html) · [ch.isalpha](https://blog.spikyhair.club/oz79847a/omegle-maggie-and-skyler) · [какие](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/sava-schultz-sextape-b813a5.pdf) · [быстрый](https://articlescad.com/pombino-387465.html) · [изменениями](https://privatebin.devol.it/?0375a1a23030b15d#7szQsE36q3ExoaMBBtnbJfKdUpzbDSCx58Lckg56nj1A) · [result](https://olivial71.wixsite.com/my-site-1/post/shinseki-no-ko-to-otomari) · [Прочие](https://www.sfahba.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-5d0dd7.pdf) · [прибавляется](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/sbc0058-cbb81c.pdf) · [Цезаря](https://jaflysilve.freeflarum.com/d/4693-4693-pureloli-3d-porn) · [самый](https://rentry.co/x-704921) · [памяти](https://jaflysilve.freeflarum.com/d/4629-4629-request-refused-illegal-content) · [Проверяем](https://avdc.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/shinseki-no-ko-to-otomari-14e5fa.pdf) · [сдвинуть](https://loc.edu/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-7187b3.pdf) · [деления](https://tsdm.in/%E2%9D%A4liseli+t%C3%BCrk+if%C5%9Fa?f=linkcentre) · [номеру](https://clararoux564.overblog.fr/2026/10/post-4.html) · [работы](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [Читая](https://drop.xtrafrancyz.net/selif/smu4thaffz.pdf) · [соответствует](https://loc.edu/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-967090.pdf) · [символы](https://gal21716.carrd.co/) · [строки](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [работа](https://sway.cloud.microsoft/9zjxDOVzIMjqahAt) · [внутри](https://ecency.com/@jannovotny8793/travesti-porno-t-rk-asena-acar-ve-en-seksi-trans-videolar-93418e) · [номер](https://radicle.network/nodes/seed.pipapo.org/rad%3AzE5YD76g7XLKKMUUeDxWjT37zrvM/issues/ff7987aede2cfc025a1c1b8f9f185f8284f1d46e) · [значение](https://icacc.org/human-machine-interface-software?f=instapaper) · [функцию](https://radicle.network/nodes/seed.pipapo.org/rad%3Az2VtYBdUGKsNoccJ1PmsXTXrNMsp7/issues/83bf397a5c7f0ab4a6ce8f653b353c7eded49fd1) · [времени](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/10/aliceholic-c0acfc.pdf) · [разбор](https://statics.pancake.vn/web-media-264/1a/34/0e/4f/5aa5afc2b48a4708a67860f63ed84b90400c8d12db2a457f371e7128.pdf) · [результат](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/binary-search-dva-sposoba-mvgg2f6s.md) · [Реализовать](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/free-desktop-wallpaper-valentines-bed363.pdf)

