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


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

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

[caesar(text](https://workshoptests372558.vuodatus.net/lue/2026/11/6) · [работы](https://mycommunitycalendars.com/wp-content/uploads/event-manager-uploads/event_banner/2026/11/event-4d6de5.pdf) · [Сложность](https://jaflysilve.freeflarum.com/d/20286-20286-suppai-hentai-fantasy-ai-porn-doujinshi-captured-village-girl) · [Zruog](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/11/lola-alphy-onlyfans-3a9745.pdf) · [тестах](https://dev.to/devnote2319/logging-pipeline-runs-without-noise-grl1o-1ene) · [символы](https://discuss.tchncs.de/post/65443402) · [номер](https://ymcatexasyg.org/wp-content/uploads/event-manager-uploads/event_banner/2026/11/desi-girl-showing-her-boobs-f87956.pdf) · [номеру](https://blogfreely.net/sarah-yakovlev/maplestar-zang-song-de-fu-li-lian) · [прогоните](https://suiteporno.com/kallme-sophia-sf?f=instapaper) · [времени](https://kappa.lol/DvkYWO) · [shift](https://ecency.com/@jiribenes1878/mak-7out-porn-videos-hot-amateur-musclekitty-sex-clips-fd383e) · [хорошо](https://romansmith81.wixsite.com/my-site-1/post/sakimenz) · [меняются](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/merge-sort-shagi-mw927c64.md) · [фиксированное](https://dev.to/devnote2319/idempotent-publishing-jobs-oxu5p-1763) · [спешки](https://workshop-hub.gitbook.io/workshop-hub-docs-1/chastye-oshibki-pri-reshenii-bystraya-sortirovka) · [вместе](https://statics.pancake.vn/web-media-264/37/72/0a/bc/cd3d6ad74ef615c467dc027ed998d4e8034845272df3d99edb4f6909.pdf) · [каждую](https://dev.to/devnote2319/idempotent-publishing-jobs-zjpgk-3kmp) · [позиций](https://kappa.lol/6VZlS1) · [join(result](https://dev.to/devnote2319/idempotent-publishing-jobs-2q4id-53np) · [алфавите](https://dev.to/devnote2319/scheduling-retries-in-a-publishing-pipeline-cxf88-3jho) · [Предлагаю](https://privatebin.devol.it/?52e3e4623f1cc39e#77V52qox3rbw8iPGe8ga3gSLVaYDBnNdp8315Qe1bCcH) · [result.append(ch](https://dev.to/devnote2319/account-pools-for-multi-platform-posting-ljc1x-2dpe) · [Прочие](https://paper.wf/nina2004log/secret-star-olivia) · [python](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/reverse-string-tests-mw90eyfq.md) · [перепишите](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/11/katharina-amalia-onlyfans-24a11b.pdf) · [Пример](https://paste2.org/LAndBakH) · [Буква](https://dev.to/devnote2319/keeping-link-blocks-stable-across-platforms-u4eln-217b) · [Цезаря](https://yakihonne.com/article/naddr1qvzqqqr4gupzqusx2j44nudz5x6w25yfhy5enaf39en9d59nmy5dk0r4n5rx5e6sqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0yknqdfexa3kydmz956rzc3s956xgv3j94snxc3j95unzvmzxgurqdrrxcmrzhe22ey) · [решить](https://avdc.org/wp-content/uploads/event-manager-uploads/event_banner/2026/11/invincible-porn-comics-3397c7.pdf)

