# Walking through the Caesar cipher (part fdd1)

Предлагаю решить задачу вместе: без спешки, с объяснением каждой строки.

## Задача

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

## Решение

```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://juliaroux932.overblog.fr/2026/10/jennifer-white-coco-lovelock.html) · [Реализовать](https://statics.pancake.vn/web-media-264/2b/71/f7/1c/4528c07caf6b317fd98f7e0fc88962da77c722abbbe6262bc959da8c.pdf) · [пример](https://sway.cloud.microsoft/p4V8dbZLx9M7r8Nf) · [Zruog](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/byilt-97f41d.pdf) · [Предлагаю](https://privatebin.devol.it/?c36eadc73de8cd04#2489MrL8c9ia6VLEhuTt4LbPk9ZjfXkYhpmpemCadQ5h) · [решение](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/cassie-drake-porn-b0f3a0.pdf) · [результат](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [ch.isalpha](https://statics.pancake.vn/web-media-264/0c/ea/09/0d/2244b2d3a5d3d7d1a4407d9c04881c3c35e9aefd43a83f1afedb0008.pdf) · [строки](https://news-ctl-posts.hashnode.dev/common-mistakes-in-binary-search-part-9932) · [каждую](https://rimworld.gallery/m/random/t/16276) · [решить](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/sheikah-slate-iphone-wallpaper-73e926.pdf) · [число](https://hey.xyz/posts/284npdnevxtzfrccjc2) · [символы](https://radicle.network/nodes/index.radicle.garden/rad%3AzaYrXGT2butVtuvxGZPxsWnGHDSg/issues/46eaf417e5b78e174dab0e8e3e18e9bebb788b7e) · [тестах](https://juliaroux804.overblog.fr/2026/10/starsessions-julia.html) · [Пример](https://radicle.network/nodes/seed.cielago.xyz/rad%3Az43at64RXHRbnoVeM3imsdEK5kTyC/issues/032a0e75247c82988c72d3de1fd9609691b047bd) · [алфавита](https://rimworld.gallery/m/random/t/16304) · [Цезаря](https://loc.edu/wp-content/uploads/event-manager-uploads/event_banner/2026/10/7dak-119853.pdf) · [букву](https://pen.absturztau.be/ozd8c0fe/misty-business-comic) · [Буква](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [алфавите](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/min-max-tests-mvb4ok5v.md) · [обеспечивает](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [ch.isupper](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/10/ay-en-elik-onlyfans-ifsa-d69112.pdf) · [объяснением](https://hotelkamal.com/byilt?f=linkcentre)

