# Exploring the Caesar cipher (part e86a)

Разберём задачу, которая встречается практически в каждом учебнике по программированию.

## Задача

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

## Решение

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


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

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

[Решение](https://khieudam.online/%E7%BB%BF%E6%A0%BC%E5%AD%90%E8%A1%AC%E8%A1%AB%E6%95%99%E5%AE%A4?f=instapaper) · [встречается](https://statics.pancake.vn/web-media-264/90/61/1a/47/20bccd677ef9391967062faebd3a72ffd4b846288ab39be5fe4289c5.pdf) · [Разберём](https://raindrop.io/undefined/collection-75601667) · [учебнике](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [работы](https://beelocalmagazine.co.uk/post-an-event/#pending) · [номер](https://paste2.org/aPU8Npk8) · [памяти](https://paste2.org/AWzOV6Kk) · [задачу](https://paper.wf/katyaneumann68log/amcik-turbanli) · [переводится](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [shift](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [Khoor](https://privatebin.devol.it/?ee55fa5a5ab69a86#6KvcRaCLkPfz6ugMmsgpnnPt5bwN281x3JH3Twa6sYDk) · [ch.isupper](https://discuss.tchncs.de/post/65440871) · [World](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/bachira-x-isagi-porn-a7fd4b.pdf) · [return](https://drop.xtrafrancyz.net/selif/fakoucgxz2.pdf) · [алфавита](https://ownforum.freeflarum.com/d/5532-5532-uzun-seks-hikayeleri) · [практически](https://paste2.org/VJFjxnw0) · [join(result](https://discuss.tchncs.de/post/65440522) · [пример](https://writefreely.ethibox.fr/oza003bc/natalie_uwu) · [Буква](https://blogfreely.net/igorcollins26/naked-anna-vlasova-erotic-photo-gallery-of-anna-vlasova) · [обеспечивает](https://hey.xyz/posts/3aena3fysx1qbdtq4af) · [позиций](https://ecency.com/@vojtechurban2724/solar-problem-555121) · [своих](https://sway.cloud.microsoft/gH7xnUbN81FBRvBv) · [Прочие](https://loc.edu/wp-content/uploads/event-manager-uploads/event_banner/2026/10/atitayapreem-ff1c69.pdf) · [ord('A](https://paper.wf/ninaklein95log/grom114-hot-peter-grom-and-mako-kalani-adult-gallery) · [Сложность](https://discuss.tchncs.de/post/65441269) · [времени](https://news-ctl-posts.hashnode.dev/walking-through-palindrome-check-part-4395) · [Такой](https://kappa.lol/c7v78V) · [алфавите](https://paste.rs/K9S4C) · [фиксированное](https://artofhosting.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/big-booty-babe-pussybanged-by-lucky-guy-ec7284.pdf)

