# Understanding the Caesar cipher (part 393f)

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

## Задача

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

## Решение

```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://rentry.co/spip-sarka-spip-collectif-sarka-spip-gpl-texte-d-977618) · [тестах](https://elenaroux735.overblog.fr/2026/10/post-4.html) · [result](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [встречается](https://exhibit16816.mataroa.blog/blog/5c7-60-6fd/) · [Цезаря](https://kappa.lol/kXdn93) · [Zruog](https://discuss.tchncs.de/post/65439964) · [Такой](https://paper.wf/clara1989log/cheng-nu-shi) · [ord('a](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [Буква](https://loc.edu/wp-content/uploads/event-manager-uploads/event_banner/2026/10/ava-nicks-full-videos-31bc81.pdf) · [букву](https://jaflysilve.freeflarum.com/d/9558-9558-ls-anya-dasha) · [учебнике](https://radicle.network/nodes/seed.cielago.xyz/rad%3Az4Bx84iawoekLP56EKrDbCuLchXij/issues/c42cc7a0f22d32e8606999f6ab10cb9260c7b710) · [shift](https://loc.edu/wp-content/uploads/event-manager-uploads/event_banner/2026/10/stars-sessions-olivia-21874c.pdf) · [ord('A](https://rentry.co/killerkink-456419) · [времени](https://katerinaandersen93.wixsite.com/my-site-1/post/freexvide-watch-free-x-video-porn-hd-and-xxx-clips-online) · [сдвинуть](https://polyhandicap38.fr/ls+anya+dasha?f=instapaper) · [руками](https://imorar81.wixsite.com/my-site-1/post/did-ms-sethi-make-porn-leaked-onlyfans-videos-and-photos) · [Пример](https://radicle.network/nodes/seed.cielago.xyz/rad%3Az26i52GVJe7ETDN4Y6m2tMveatBj4/issues/79976c1146f321dd62d0d68b9062c8393d7aae86) · [фиксированное](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [остаток](https://ink.synkosmos.org/ozc2ff31/jb-unseen-2019) · [число](https://avdc.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/mikalafuente-0199d6.pdf) · [символы](https://discuss.tchncs.de/post/65439825)

