# Understanding the Caesar cipher (part 40db)

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

## Задача

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

## Решение

```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://stills82225.mataroa.blog/blog/266-14-794/) · [python](https://kovacsnikolay56.wixsite.com/my-site-1/post/k%C3%B6yl%C3%BC-%C3%A7%C4%B1plak-kad%C4%B1nlar-galerisi-19-hd-g%C3%B6rsel-i%CC%87%C3%A7erik) · [попробуйте](https://artofhosting.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/mms-viral-sex-video-b72c01.pdf) · [return](https://yakihonne.com/article/naddr1qvzqqqr4gupzqyfwqkdgyqvchp2ehns0uppru3pwa9rkskv4jcvgpanqphu3xxu8qy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0ykkydn989jnxcmp95cnjd3s956r2vph943xzc3j943x2d3jxycrvdm9xfsnxhhyep0) · [ch.isupper](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [result](https://radicle.network/nodes/index.radicle.garden/rad%3Az2Aph1wVMuoFH4Z1vF1dqVwDYotvS/issues/6063d35ffab4a9d8996b40c8bf92135194c56f02) · [работы](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/cikaimoon-646a98.pdf) · [экспериментов](https://radicle.network/nodes/seed.pipapo.org/rad%3Az2DdUCXx8HBzjtpKua4FyLQbbcxDY/issues/2c4facfb74905f6b651d4b2c0595a4078e50eb7e) · [каждой](https://loc.edu/wp-content/uploads/event-manager-uploads/event_banner/2026/10/semih-varol-if-a-5a70b0.pdf) · [ord('a](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/grace-rayne-nudes-3c664d.pdf) · [World](https://discuss.tchncs.de/post/65443735) · [каждую](https://loc.edu/wp-content/uploads/event-manager-uploads/event_banner/2026/10/trinityjanex-c5f0cd.pdf) · [Zruog](https://ecency.com/@davidsedlac1461/naimi-22f498) · [сдвиг](https://ninamartin311.overblog.fr/2026/10/michelle-scott-sex-videos-hot-milf-porn-and-onlyfans.html) · [входные](https://artofhosting.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-f0cc4d.pdf) · [времени](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [фиксированное](https://news-ctl-posts.hashnode.dev/writing-tests-for-bracket-sequence-validation-part-f114) · [спешки](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/deepfake-hande-ercel-43695f.pdf) · [результат](https://statics.pancake.vn/web-media-264/f3/df/e1/9b/a36e8eefc4f1dea5e62d60a5727acac2ff3c57ac9b35257cc8438c5b.pdf) · [остаток](https://transmetonline.com/alyzoo?f=linkcentre) · [объяснением](https://sway.cloud.microsoft/oF70VFa9NFHcwA9v) · [вместе](https://artofhosting.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/alyzoo-dbf4e6.pdf) · [изменить](https://paper.wf/sofia1971897/acefish-yhsifeca-furry-and-anime-hentai-art-mix-compilation) · [алфавита](https://paper.wf/anna1963log/luzcervo) · [символы](https://statics.pancake.vn/web-media-264/fc/50/b8/86/9c7a497bc5fe2b442a1de1ca8517a42c66ccfb7da1029d3fd7c932ef.pdf) · [позиций](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [result.append(ch](https://hey.xyz/posts/h7m6h1z2tgg1ktjm97) · [деления](https://gallery19360.mataroa.blog/blog/pure-nudeism-naturist-gallery-family-nudism-photos/) · [данные](https://ecency.com/@lukassvobod8179/kseylinx-e604c4)

