# Understanding the Caesar cipher

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

## Задача

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

## Решение

```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://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/willow-coppock-8e5135.pdf) · [времени](https://mycommunitycalendars.com/wp-content/uploads/event-manager-uploads/event_banner/2026/11/ai-15e500.pdf) · [экспериментов](https://hey.xyz/posts/vgrcmx1231st3xsxtp) · [алфавите](https://articlescad.com/t-rbanl-t-rk-sakso-407600.html) · [попробуйте](https://mycommunitycalendars.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/hope-ann-onlyfans-bd80af.pdf) · [внутри](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/10/sexo-escondido-no-trabalho-d12f07.pdf) · [каждую](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/brackets-razbor-mvx9johz.md) · [алфавита](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/11/bakire-amcik-resimleri-f48ef0.pdf) · [Реализовать](https://yakihonne.com/article/naddr1qvzqqqr4gupzq422gdhxjgpu5vrpnur6y6lsmnhg8cgarnytn9gpewpw7l9vl8mlqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0ykk2vmyxe3rqd3j95erscf3956x2dmx95uxzepe95mk2ceexgcngefnxanrqqru8np) · [Сложность](https://zkarchive.org/brazzer+xnxx+stepmom?f=instapaper) · [номер](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/tensei-shitara-slime-datta-ken-rule-34-e0bb52.pdf) · [деления](https://pen.absturztau.be/oz4e004f/ge-zhao-si-wa-cha-ru) · [прибавляется](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [данные](https://jaflysilve.freeflarum.com/d/12672-12672-kakihara-d) · [Задача](https://openaccess-study.com/yourqueenloufa?f=instapaper) · [Буква](https://ecency.com/@marekbenes6828/real-indian-mom-son-sex-53f2b4) · [шагам](https://gall.dcinside.com/mgallery/board/view/?id=nmixxreality&no=3544) · [разберём](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [памяти](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/11/dreemz98-onlyfans-videos-2cd374.pdf) · [сдвиг](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [меняются](https://montage35993.mataroa.blog/blog/hot-2024/)

