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

Медленный разбор помогает понять код, а не просто скопировать его.

## Задача

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

## Решение

```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://sway.cloud.microsoft/BZxS3U5aAi4y37uv) · [result](https://articlescad.com/yum-707-386721.html) · [return](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [символы](https://gall.dcinside.com/mgallery/board/view/?id=nmixxreality&no=3548) · [каждую](https://laurasimon573.overblog.fr/2026/10/lilynjtaylor-onlyfans-videos-and-nude-photo-sets.html) · [здесь](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [условию](https://sofiamartin803.overblog.fr/2026/10/grup-t-rk-i-f-a-foto-raflar-ve-videolar-2024-g-ncel-i-erik.html) · [shift](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-bf268f.pdf) · [происходит](https://privatebin.devol.it/?ea04b3cd6dfc87b7#4hCtQSeu9gy6sMDX7qHeEAisz1B9Wx9qvHx8BnrRMPZF) · [номеру](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [ch.isupper](https://bottlebox.beer/aikokimxo+nude?f=linkcentre) · [помогает](https://avdc.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/poppiillouizz-nudes-00bd64.pdf) · [переменных](https://rentry.co/gojo-in-geto-fantasy-480p-998488) · [самый](https://news-ctl-posts.hashnode.dev/writing-tests-for-primality-testing-part-f255) · [скопировать](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/binary-search-tests-mvfprftn.md) · [функцию](https://kappa.lol/NMeaXK) · [сдвинуть](https://osteria1881.com/catol-mp4-3/pornnet2?f=linkcentre) · [работа](https://ecency.com/@jannovotny8793/ss-olivia-nude-secret-star-sessions-photos-and-videos-8cd06c) · [caesar(text](https://yakihonne.com/article/naddr1qvzqqqr4gupzq9wj7j3p39ukqfqgkhrel3zn2cfs6a58s2ukynjg8kjj4dkqn9cqqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0ykkyc3jv5mkywtr95mnwdrz956rwcny94skvvp595mnge3jv5mrxdtrvd3kgsveupk) · [сдвиг](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/memichhelle-523b93.pdf) · [Убеждаемся](https://loc.edu/wp-content/uploads/event-manager-uploads/event_banner/2026/10/via-inka-porn-501bed.pdf) · [считаются](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/i-me-bebek-realistik-a79789.pdf) · [Пример](https://www.sfahba.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/paris-hilton-hotter-than-ever-01f69b.pdf)

