# Walking through the Caesar cipher (part 4096)

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

## Задача

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

## Решение

```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) по памяти под результат.


Такой пример хорошо закрепляется практикой — перепишите решение руками и прогоните на своих тестах.

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

[ch.isalpha](https://radicle.network/nodes/index.radicle.garden/rad%3AzNVaLqguziGQQSdQduAi84Qryc1c/issues/0e1c9cba3d897a19aed569ca6b6e2b497c5f3815) · [прогоните](https://paste.rs/XnKsF) · [внутри](https://artofhosting.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/nn-models-photos-f7ae1a.pdf) · [своих](https://mariefournier156.overblog.fr/2026/10/2.html) · [Цезаря](https://drop.xtrafrancyz.net/selif/xl35pgthnk.pdf) · [result.append(ch](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/andie-elle-onlyfans-naked-1821f6.pdf) · [каждую](https://avdc.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/tweetylau-8d883f.pdf) · [число](https://avdc.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/alvarl-k-yl-twitter-f39c1b.pdf) · [алфавита](https://loc.edu/wp-content/uploads/event-manager-uploads/event_banner/2026/10/jonsie210-sf-6fac59.pdf) · [памяти](https://privatebin.devol.it/?1f26a512644b2622#CD6CSZyAakv2ixEXYHY9gvRGbR6j539PXKPWnAbp2vnT) · [программирование](https://elenadubois120.overblog.fr/2026/10/post-0.html) · [Буква](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [Решение](https://jamesp799.wixsite.com/my-site-1/post/%E8%8E%89%E5%A8%9C%E5%AE%89%E5%BE%B7%E6%A3%AE-%E6%88%90%E4%BA%BA%E7%85%A7%E7%89%87%E9%9B%86-%E6%80%A7%E5%A7%BF%E6%80%81%E5%B1%95%E7%A4%BA) · [символы](https://privatebin.devol.it/?c743b238544fe6da#CeqmkCXkYeCmD2si3rj7zg6P2ntxik9GKXzXtdAd5DfH) · [Khoor](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/x-283d7c.pdf) · [перепишите](https://julialaurent571.overblog.fr/2026/10/post-29.html) · [материале](https://wuchu-pub.com/uploads/20261020/790ccdb993c88b28a09a991a0b16a03f.pdf) · [времени](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [остаток](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-2152b8.pdf) · [Сложность](https://ninamichel227.overblog.fr/2026/10/post-13.html) · [руками](https://loc.edu/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-1de76b.pdf) · [учебную](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/periscope-stickam-2a13c6.pdf) · [букву](https://tubexxxgate.watch/Loreto+Aravena+Hot+%28Historias+de+campo+CHV%29?f=instapaper) · [python](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [обеспечивает](https://discuss.tchncs.de/post/65440584)

