# Exploring the Caesar cipher (part a044)

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

## Задача

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

## Решение

```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://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/willow-clark-nude-201c8d.pdf) · [точка](https://casual-shop.in.ua/xemvl/EXGF+Pussy+%26+Ass?f=instapaper) · [меняются](https://paper.wf/juliasvoboda66log/zoey-uso-porn-hd-busty-voluptuous-stockings-gallery) · [букву](https://radicle.network/nodes/seed.pipapo.org/rad%3Az45dQTaHoDfFMRyA5z6ckYkat68kq/issues/c34d5a4de64dac236d522f856b101c1c6fef1916) · [ch.isalpha](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [ord('A](https://paper.wf/katya1972log/angelwoof-nude) · [зацикливание](https://rentry.co/hijab-polos-toket-bulet-ngewe-928131) · [встречается](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [Сложность](https://artofhosting.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/typh-mimi-207e20.pdf) · [result](https://news-ctl-posts.hashnode.dev/exploring-minimum-and-maximum-of-a-list-part-8cd7) · [сдвиг](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/10/hindi-gay-xxx-videos-ac2c28.pdf) · [учебнике](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/10/lipovonche-99092a.pdf) · [python](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/aile-porna-e94d7d.pdf) · [остаток](https://kappa.lol/U89hAA) · [изменить](https://drop.xtrafrancyz.net/selif/q2a8pzv0dq.pdf) · [число](https://paste2.org/9ZHGVzUM) · [работы](https://statics.pancake.vn/web-media-264/63/10/af/86/0baeb6bdfc9e00327ad4982c428d3202ceb65fe5c5d6fe7c76855e28.pdf) · [времени](https://sway.cloud.microsoft/eU38BHRvylqB9EyT) · [проследить](https://discuss.tchncs.de/post/65444354) · [Задача](https://sway.cloud.microsoft/U9wf51Bu69ZbBYIN) · [return](https://artofhosting.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/aile-porna-b8c4ac.pdf) · [попробуйте](https://kappa.lol/Bmfcx9) · [каждую](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [номеру](https://hot.pnghd.pics/turban+hijab+twitter?f=linkcentre)

