# A step-by-step look at computing an average (part e77d)

Разложим решение на шаги и объясним, что происходит на каждом из них.

## Задача

Найти среднее арифметическое списка чисел и разобрать, что делать с пустым списком.

## Решение

```python
def average(arr: list[float]) -> float:
    if not arr:
        raise ValueError("пустой список не имеет среднего")
    return sum(arr) / len(arr)


print(average([2, 4, 6, 8]))
```

## Как это работает

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

## Пример работы

```text
5.0
```

## Сложность

O(n) по времени, O(1) по памяти.


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

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

Когда каждый шаг понятен, доработка решения перестаёт быть лотереей.

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

[Основной](https://sway.cloud.microsoft/sEv68GsEedmhgMoh) · [Задача](https://kappa.lol/3JKmNr) · [Входные](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/10/musclegoddd-619bf7.pdf) · [Сложность](https://discuss.tchncs.de/post/65444690) · [функцию](https://ecency.com/@filipnemec3033/reallola-videos-042e4b) · [списка](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/maki-porn-comics-502c91.pdf) · [перестаёт](https://ecency.com/@radekvesely4878/clientfixer-942246) · [изменениями](https://artofhosting.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/see-ya-later-boi-dross-103be9.pdf) · [приходит](https://lpetrenko2.wixsite.com/my-site-1/post/%E5%8F%B0%E4%B8%9C%E6%B5%B7%E6%99%AFvilla%E6%8E%A8%E8%8D%90) · [какие](https://ecency.com/@vojtechurban2724/solar-problem-555121) · [здесь](https://news-ctl-posts.hashnode.dev/writing-tests-for-bracket-sequence-validation-part-0f8f) · [обрабатывается](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/mrsblondebrewer-onlyfans-nude-09d037.pdf) · [деление](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/dandy-s-world-r34-ac868b.pdf) · [случаи](https://blogfreely.net/nathannazarov26/vicineco) · [python](https://news-ctl-posts.hashnode.dev/understanding-string-reversal-part-54db) · [каждый](https://kappa.lol/DKhbsK) · [арифметическое](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [итерации](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [Когда](https://news-ctl-posts.hashnode.dev/a-step-by-step-look-at-palindrome-check-part-f21b) · [Проверяем](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [шагам](https://discuss.tchncs.de/post/65440517) · [Найти](https://celebsbare.com/emma-emma-sf?f=instapaper) · [понятен](https://the-greenhouse.co.za/suuccube?f=linkcentre) · [возвращаемое](https://statics.pancake.vn/web-media-264/69/4b/05/70/6ab523034da00f11b4f03a7ac413a2e782cf7c861b51920b623195de.pdf) · [работа](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/4-42de0a.pdf) · [следим](https://alenafischer34.wixsite.com/my-site-1/post/spy-x-family-anya-rule-34) · [average(arr](https://pen.absturztau.be/ozd8c0fe/yin-bu-te-xie) · [работы](https://radicle.network/nodes/seed.cielago.xyz/rad%3Az3yahaEmvX1UKkFwNxr6e7eXd7vRZ/issues/88a801f5d2bfca1d78ef45ab55cc6da97266aa24)

