# Step-by-step: the Caesar cipher (part 8bef)

Медленный разбор помогает понять код, а не просто скопировать его.

## Задача

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

## Решение

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


## Разбор по шагам

1. **Шаг 1. Входные данные.** Проверяем, что приходит в функцию, и какие значения считаются корректными.
2. **Шаг 2. Основной цикл.** Именно здесь происходит вся работа; следим за изменениями переменных на каждой итерации.
3. **Шаг 3. Результат.** Убеждаемся, что возвращаемое значение соответствует условию задачи, включая крайние случаи.

Читая чужой код, повторите тот же мысленный разбор по шагам — это самый быстрый способ научиться.

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

[символы](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/quicksort-dva-sposoba-mvfoe2wl.md) · [Именно](https://radicle.network/nodes/index.radicle.garden/rad%3AzVFudYdpwqsPdz45WAwLXKMiLaoH/issues/a76b1c09806890d6117c27d73eb382339ee8d21c) · [шагам](https://www.sfahba.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/feerpom-fb51db.pdf) · [какие](https://rimworld.gallery/m/random/t/16274) · [обеспечивает](https://kappa.lol/nGAy3A) · [каждую](https://yakihonne.com/article/naddr1qvzqqqr4gupzpm3gk0anvk3jy4mwl6fq07x89utytyd73ejdycrv4lerw727vt6tqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0yknveryxveryety94skzcmy956xzdfe94snsvr995cnvdenv9jxyc3e8yukvmf0z8l) · [просто](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [задачи](https://sway.cloud.microsoft/M3zMYDC4SeSjoXq9) · [строки](https://hey.xyz/posts/2zg42yegba4hhv6mz8m) · [алфавита](https://radicle.network/nodes/index.radicle.garden/rad%3Az2sPCA4AeYWUADSRrZrerFtMdbqBb/issues/90106f0f1e2dca9780539149be9e4e2b97e7b054) · [result](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [Проверяем](https://www.sfahba.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/jellybean-leaked-onlyfans-4794f0.pdf) · [номеру](https://kub.kiev.ua/jilbab+tiktok+bugil?f=instapaper) · [caesar(text](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [значения](https://rentry.co/fpuqtzqy) · [Реализовать](https://stopmagazin.sk/join/%27bw+mrkwb?f=instapaper) · [ch.isalpha](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/japs8005-191fe2.pdf) · [Результат](https://sokolovadam49.wixsite.com/my-site-1/post/%D9%84%D8%AD%D8%B3-%D8%B1%D8%AC%D9%84%D9%8A%D9%86) · [Убеждаемся](https://oksanal77.wixsite.com/my-site-1/post/%D1%80%D0%B0%D1%81%D1%82%D0%B5%D0%BD%D0%B8%D1%8F-%D0%BF%D1%80%D0%BE%D1%82%D0%B8%D0%B2-%D0%B7%D0%BE%D0%BC%D0%B1%D0%B8-%D1%81%D0%B5%D0%BA%D1%81) · [корректными](https://drop.xtrafrancyz.net/selif/gv101lbblh.pdf) · [Разбор](https://kappa.lol/XyqCVe) · [ord('A](https://fepslutc.org/%E5%A5%B3%E5%AD%A6%E7%94%9F%E8%A3%B8%E4%BD%93?f=instapaper) · [Медленный](https://yakihonne.com/article/naddr1qvzqqqr4gupzqt8qhqurqwfkaske8gl8pew6sfpvuv6l0f2qcfv7vgp2vesrnp2aqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0ykkxdr9v3jrqv33943ngvf5956rycm995ukgef4943xzdmzxdnrwd3nvdjxv3dn0tr) · [чужой](https://hey.xyz/posts/ktvtf70e9kcqsdw5v1) · [работа](https://discuss.tchncs.de/post/65444088) · [самый](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/unique-oshibki-mvfrwqfe.md)

