# Understanding the Caesar cipher (part 2662)

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

## Задача

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

## Решение

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


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

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

[join(result](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/angelica-and-veronica-part-1-striptease-21c327.pdf) · [решение](https://paper.wf/olga2000log/sks-rby-sr-fydyw-vr-8k-w-4k-w-3d) · [сдвиг](https://loc.edu/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-05dcc7.pdf) · [работы](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/nihal-candan-onlyfans-if-a-c4e751.pdf) · [сдвинуть](https://blogfreely.net/catherine-vasilyev70/marisol-silver-pearl-teen-cam-model-photo-gallery) · [остаток](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [Сложность](https://annasantos73.wixsite.com/my-site-1/post/filiz-ta%C3%A7ba%C5%9F---konyal%C4%B1-%C5%9Ferifenin-erotik-dergi-foto%C4%9Fraflar%C4%B1) · [каждой](https://avdc.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/mikayla-campino-masterbating-fda4f1.pdf) · [Zruog](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/10/yagmur-simsek-if-a-17162e.pdf) · [ord('A](https://gal24598.carrd.co/) · [каждую](https://blogfreely.net/catherine-vasilyev70/rule-34-shota) · [памяти](https://news-ctl-posts.hashnode.dev/writing-tests-for-quicksort-part-a197) · [World](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/simge-baranko-lu-70a951.pdf) · [вместе](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/mika-raun-if-a-50585f.pdf) · [return](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-b836b4.pdf) · [номеру](https://ecency.com/@martinnemec5998/junior-miss-pageant-2000-french-nudist-beauty-contest-5-ba3088) · [Задача](https://blogfreely.net/igorcollins26/xxnepali) · [caesar(text](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [алфавита](https://yakihonne.com/article/naddr1qvzqqqr4gupzpudhqn7ey0vw270lt72vcf89n923hh75927qa0nzpcehqrv7expaqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0ykkydpsv9jnswry94nx2c3n956xydm994snqve495urxce4v3jkgdtrxcck2d04uut) · [времени](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [Буква](https://rentry.co/alexa-pearl-titty-fuck-226067) · [экспериментов](https://blogfreely.net/nataliarussell2/hentai-gif-cum) · [фиксированное](https://annafournier654.overblog.fr/2026/10/post-6.html) · [зацикливание](https://ecency.com/@jannovotny8793/solodusk-r34-9d614f) · [символы](https://mariefournier156.overblog.fr/2026/10/best-brawl-stars-melody-rule-34-hentai-photos-videos.html) · [ord('a](https://sway.cloud.microsoft/vlyxDKurWVojcfAD) · [прибавляется](https://statics.pancake.vn/web-media-264/c5/bc/af/83/071be40f1be019f2d1005172aae779ebe0e5c872a8bd89e03b26a45f.pdf) · [переводится](https://blogfreely.net/nathannazarov26/yagmur-simsek-ifsa) · [деления](https://hey.xyz/posts/3vbrjrw1vn06qc0jq4h)

