# Understanding the Caesar cipher (part 9423)

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

## Задача

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

## Решение

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


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

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

[return](https://avdc.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/sandbox-vr-metaverse-731985.pdf) · [Решение](https://annaleroy544.overblog.fr/2026/10/av4-videos.html) · [Цезаря](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [число](https://writefreely.ethibox.fr/oze999ae/brandy-billy-porn-galleries-and-onlyfans-leaked-photos) · [решение](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [тестах](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/mesudachi-the-animation-ep2-412742.pdf) · [фиксированное](https://radicle.network/nodes/index.radicle.garden/rad%3Az4ABK8RQNJmzNqqFWRukEcpWNbcng/issues/48db7899e1fae7837e57f16efe4cbfa0d4ea77f4) · [практикой](https://kappa.lol/fcv7RL) · [ord('A](https://discuss.tchncs.de/post/65439971) · [переводится](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [учебную](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-5c3cbd.pdf) · [caesar(text](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/lylaa-lane-porn-1fa5ee.pdf) · [алфавите](https://daryj.com/%DA%A9%D8%A7%D9%86%D8%A7%D9%84%D9%87%D8%A7%DB%8C+%D8%B3%DA%A9%D8%B3%DB%8C+%D8%A7%DB%8C%D8%B1%D8%A7%D9%86%DB%8C?f=linkcentre) · [Zruog](https://ecency.com/@martinkral2386/post-78bf7a) · [Задача](https://sway.cloud.microsoft/iQpTkMWfCwDEZvKB) · [позиций](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/oznur-guven-if-a-bd6a07.pdf) · [работы](https://news-ctl-posts.hashnode.dev/pitfalls-of-primality-testing-part-fc98) · [сдвинуть](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/real-mom-son-hidden-cam-73b717.pdf) · [Пример](https://yakihonne.com/article/naddr1qvzqqqr4gupzqwtqlsdehscn77z62c5097xl924u7tsgfm9kmulhcgcuvazy2dmyqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0yknzepjx5ekycnr943rsvpj956rwdf594snwc3n94snxdfn8ymnjvpcxscxvxq93u6) · [ch.isalpha](https://curated13749.mataroa.blog/blog/luckyql777/) · [закрепляется](https://noobtheloser.xyz/danziengine?f=instapaper) · [руками](https://radicle.network/nodes/seed.pipapo.org/rad%3AzEQFqJ3VTJ1CBHPHsgF2U5gNs6MP/issues/ada1fa7d418fd09fd12bbc374b320d7c540fc4c6)

