# Walking through the Caesar cipher (part d26d)

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

## Задача

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

## Решение

```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://news-ctl-posts.hashnode.dev/common-mistakes-in-palindrome-check-part-ee37) · [World](https://blogfreely.net/igorcollins26/asli-bekiroglu-ifsa-ciplak-sansursuz) · [обеспечивает](https://rentry.co/kaori-xoxo-myfans-452982) · [строки](https://blogfreely.net/nathannazarov26/trimax-turk-porno-izle) · [букву](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/blogger-a9d09a.pdf) · [номер](https://rentry.co/trixie-fantasy-onlyfans-785746) · [Реализовать](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/alizade-nude-c5eea5.pdf) · [Пример](https://leahfournier806.overblog.fr/2026/10/post-8.html) · [Прочие](https://tomass16.wixsite.com/my-site-1/post/cherryxft-leaks) · [прогоните](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [работает](https://statics.pancake.vn/web-media-264/c5/67/61/d5/bb423bd96d204a320b491fc6e4d7e567db1d56e9f0da507936c3fca9.pdf) · [число](https://pen.absturztau.be/ozd8c0fe/alt-yazili-hd-porn) · [ch.isalpha](https://ecency.com/@filipjeline3861/post-a36d34) · [сдвинуть](https://articlescad.com/t-rbanl-lezbiyen-twitter-379198.html) · [перепишите](https://blogfreely.net/nathannazarov26/kelly-nixe-xxx-videos) · [переводится](https://articlescad.com/luciana-milessi-onlyfans-videos-contenido-exclusivo-y-lencer-a-380652.html) · [ord('A](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/10/power-pack-chain-reaction-0a5fab.pdf) · [деления](https://blog.spikyhair.club/oz26ddad/jabardasti-sex-video-jabardasti-sex-video) · [руками](https://paper.wf/annaweber89log/sks-m-sdyqy) · [материале](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [символы](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [позиций](https://leaknudes.org/piper+rockelle+leaked+nudes?f=instapaper)

