# Common mistakes in the Caesar cipher (part 2de4)

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

## Задача

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

## Решение

```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. **Не обрабатывать крайние случаи.** Пустой ввод, ноль, отрицательные числа — именно там решение чаще всего ломается.
2. **Смешивать типы данных.** Строки и числа ведут себя по-разному; неявное приведение типов — источник неочевидных багов.
3. **Писать код без проверки на маленьких примерах.** Прогоните решение вручную на 2-3 значениях, прежде чем считать задачу решённой.

Заметив такую ошибку в чужом коде, вы уже мыслите как ревьюер.

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

[числа](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/is-prime-tests-mvc3v0zb.md) · [такую](https://paper.wf/sofia1992log/ozlem-aksoy) · [неявное](https://paper.wf/almaschulz67log/raperin-yilmaz) · [случаи](https://gallery39321.mataroa.blog/blog/indian-mms-video-desi-couple-sex-blowjob-and-college-girl-clips/) · [решение](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/10/starsession-5b2ff1.pdf) · [новички](https://radicle.network/nodes/index.radicle.garden/rad%3Az3vJ8DvXJuWhKwhcmPsmR9zFkQzmt/issues/5929c29bd3a91fd8f85818a3a4d27d0fc5e36b25) · [задачу](https://drop.xtrafrancyz.net/selif/0qnmbzw2ig.pdf) · [Сложность](https://statics.pancake.vn/web-media-264/d7/4f/cc/fb/bfc5feaee96d85ff43dabb24e08e1a2bda7dd8074828f2bb10fa40b7.pdf) · [сдвинуть](https://paper.wf/milafischer76log/alexandra-codefuck) · [caesar(text](https://ninamartin311.overblog.fr/2026/10/roblox-gay-r34.html) · [прежде](https://privatebin.devol.it/?76749d5e822ec406#CsRaKten5SsYVnwJnqvD7UueE6sZPhrpZnRCPwuHmchw) · [отрицательные](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/vlad-o-chka-leaks-1ec69c.pdf) · [чужом](https://martam189.wixsite.com/my-site-1/post/fitness-nala-threesome) · [Строки](https://paper.wf/katya1981log/yesilcam-seks-filmi-izle) · [маленьких](https://paste2.org/VpdbC2NW) · [ведут](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [Прогоните](https://radicle.network/nodes/seed.pipapo.org/rad%3Az45ewZwSzMbw9cfsEkEVWuQ1w1B1E/issues/ef1c7fe502f64104825ea48b76590c8a3498e640) · [символы](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [переводится](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [мыслите](https://drop.xtrafrancyz.net/selif/j8knuxo4ko.pdf) · [багов](https://kappa.lol/QR9D8Z) · [Заметив](https://rentry.co/spichkax-277538) · [решения](https://statics.pancake.vn/web-media-264/09/ae/3c/3d/a941f129bad857638de253c5d62031ba7e60ac5d93108fbdb7b504a5.pdf)

