# Exploring the Caesar cipher (part f5b1)

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

## Задача

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

## Решение

```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://portfolio17284.mataroa.blog/blog/victoria-boszczar/) · [перепишите](https://hey.xyz/posts/gd174zrxpnym0p5jj2) · [руками](https://news-ctl-posts.hashnode.dev/pitfalls-of-the-fibonacci-sequence-part-a54a) · [работы](https://kappa.lol/WLYFuW) · [ch.isupper](https://imorar81.wixsite.com/my-site-1/post/dexxa-geometry-dash-hentai-videos-gifs-and-images) · [меняются](https://sway.cloud.microsoft/KEkZqTWlZFgC8Hli) · [номер](https://privatebin.devol.it/?e435290397dbb13c#C2iBXutonYXKPPVo6RzyDvs5mKFmBi37oGWSNpjDN1jU) · [программированию](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [остаток](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [прогоните](https://popaivan95.wixsite.com/my-site-2/post/blonde-college-teen-with-great-tits-masturbating-in-dorm) · [пример](https://paste.rs/EJ5ts) · [сдвиг](https://blogfreely.net/catherine-vasilyev70/ari-silver-bangs-julie-jess-after-getting-teased) · [Пример](https://paste2.org/XnDJDBjx) · [времени](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [практикой](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/ms-sethi-x-video-ab6f95.pdf) · [World](https://emmamoreau879.overblog.fr/2026/10/beautiful-young-woman-cumming-hard-during-missionary-sex.html) · [своих](https://kappa.lol/N9PKtR) · [Реализовать](https://news-ctl-posts.hashnode.dev/a-step-by-step-look-at-bracket-sequence-validation-part-2dbc) · [result](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/10/ari-silver-bangs-julie-jess-after-gettin-3ab6b1.pdf) · [фиксированное](https://sway.cloud.microsoft/JeqmUJfI6TflMold) · [алфавите](https://ecency.com/@filippospis5169/post-b1fe9e) · [обеспечивает](https://yakihonne.com/article/naddr1qvzqqqr4gupzq9dprall6rvf9c89z6lrv9tzapcf6f3u0pa86x3nsyxqelp2hjslqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0yknyvfcvcunxwtx95envdm9956x2cny94snycfe95erzepsxvmnqdnxx93k298sykt) · [хорошо](https://artofhosting.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/mms-viral-sex-video-e65ec7.pdf) · [return](https://rentry.co/ragatha-x-jax-rule-34-131429) · [позиций](https://blogfreely.net/nataliarussell2/mikayla-campino-twitter-video) · [памяти](https://elenadubois120.overblog.fr/2026/10/indian-bhabhi-peeing-desi-piss-videos-and-clips.html) · [Цезаря](https://jaflysilve.freeflarum.com/d/1465-1465-byilt) · [прибавляется](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/10/jakarakami-nude-7dd9a6.pdf) · [номеру](https://team.writefreely.dev/oza70399/sks-rby-mht)

