# Exploring the Caesar cipher (part 8bda)

В этом материале мы спокойно и по шагам разберём учебную задачу на программирование.

## Задача

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

## Решение

```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://privatebin.devol.it/?4607d7d3dd1e9c8c#2owMSHqW5dKPPJH1BcAKmvgMe7Vr7dW2kzuscQP8dDnH) · [результат](https://rentry.co/zoe-lovee-leaks-465727) · [тестах](https://articlescad.com/-387829.html) · [внутри](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/suchtaboo-ddc78e.pdf) · [прогоните](https://paper.wf/gretakoch86log/view-full-gallery) · [спокойно](https://kappa.lol/eljJjL) · [учебную](https://news-ctl-posts.hashnode.dev/common-mistakes-in-anagram-checking-part-f112) · [практикой](https://loc.edu/wp-content/uploads/event-manager-uploads/event_banner/2026/10/shaden-ferraro-nude-fea884.pdf) · [сдвинуть](https://drop.xtrafrancyz.net/selif/0gpvaublcw.pdf) · [Буква](https://martamorar0.wixsite.com/my-site-1/post/%E9%BA%A6%E4%B9%90%E8%BF%AA%E9%A9%AC%E5%85%8B%E6%80%9D) · [остаток](https://loadqip.ru/milf+pics+pantyhose?f=linkcentre) · [алфавите](https://news-ctl-posts.hashnode.dev/solving-and-testing-removing-duplicates-from-a-list-part-13c3) · [своих](https://radicle.network/nodes/index.radicle.garden/rad%3Az3J6tRENJbnXSKkjJhwFhBHDJmT1P/issues/cb31686e5ed7584c24f29c574dd259963ab11c78) · [фиксированное](https://blogfreely.net/nathannazarov26/indian-couple-boob-suck-desi-hot-foreplay-and-romance-3xht) · [сдвиг](https://papalotecuernavaca.com/t%C3%BCrbanl%C4%B1+olgun?f=instapaper) · [result](https://loc.edu/wp-content/uploads/event-manager-uploads/event_banner/2026/10/esrarengiz-kasaba-hentai-470d21.pdf) · [зацикливание](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/palindrome-oshibki-mvgu9d5d.md) · [join(result](https://www.sfahba.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-dab92e.pdf) · [Цезаря](https://rentry.co/snzrz7cf) · [материале](https://paper.wf/ninarichter67log/taboo-teen-pics-hardcore-taboo-xxx-photo-gallery) · [ch.isalpha](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [времени](https://privatebin.devol.it/?2ef69c67b84cb9b8#4VdBt3oumVVj9DUZUoeKm7L5AKRBYqyzTp2Hmtq9bSPm) · [ord('a](https://avdc.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/li-na-zhao-a12f45.pdf) · [return](https://ecency.com/@lukasfiala2580/emmi-sellers-leaks-b062fe) · [ch.isupper](https://news-ctl-posts.hashnode.dev/understanding-binary-search-part-4657) · [шагам](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [World](https://hey.xyz/posts/sz0w78dejsbmxp6zh8) · [перепишите](https://drop.xtrafrancyz.net/selif/mwf7gdp9rw.pdf) · [result.append(ch](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da)

