# Walking through the Caesar cipher (part b72d)

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

## Задача

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

## Решение

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


Это решение удобно как отправная точка для экспериментов: попробуйте изменить входные данные и проследить за поведением кода.

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

[World](https://loc.edu/wp-content/uploads/event-manager-uploads/event_banner/2026/10/cinas-worldx-onlyfans-f1afdd.pdf) · [ch.isupper](https://paste2.org/jDHpxzce) · [Реализовать](https://jaflysilve.freeflarum.com/d/1034-1034-milaaruby) · [Прочие](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/gcd-oshibki-mvafqeyf.md) · [обеспечивает](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [изменить](https://discuss.tchncs.de/post/65445091) · [программированию](https://news-ctl-posts.hashnode.dev/understanding-merge-sort-part-487c) · [встречается](https://hey.xyz/posts/1zc0m4nkp4w15973pe7) · [удобно](https://privatebin.devol.it/?6e96c9380491cf83#78ueiEPQtwRMqTz12NBw8eYZDm8Q8qGZXhTzYnZiHvBa) · [caesar(text](https://kappa.lol/kBuHqU) · [фиксированное](https://rimworld.gallery/m/random/t/16268) · [решение](https://emmasimon692.overblog.fr/2026/10/kaia-kitsune-xxx.html) · [результат](https://hey.xyz/posts/1qjcd1by3tqpvna92r) · [ord('a](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [переводится](https://drop.xtrafrancyz.net/selif/nxjsik24t1.pdf) · [Задача](https://statics.pancake.vn/web-media-264/25/bf/1b/fb/468364943e734734b8ff70ecc00dd3f8f9ad48e8aa47820a64b8366e.pdf) · [сдвинуть](https://privatebin.devol.it/?9b12b3f9c19a6c1c#DfPzxBGpmvoYAsEaZBGs27TvZdFYnTiFGGaU7SKqTshq) · [меняются](https://paper.wf/annaneumann78log/wallpaper-2025) · [Сложность](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [памяти](https://drop.xtrafrancyz.net/selif/ndpkurx0dr.pdf) · [номеру](https://kappa.lol/EZby43) · [каждом](https://kappa.lol/XLIQ6Y)

