# Step-by-step: computing an average (part eef5)

Пройдём задачу шаг за шагом — такой формат удобен для первого знакомства с алгоритмами.

## Задача

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

## Решение

```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://privatebin.devol.it/?9ac0a4533d86d578#6jLxSKSY9PJJs9jyNkXyjqVWQBKfJ2YnQB5gsPn35oe1) · [значение](https://privatebin.devol.it/?e76e728a3e1c265b#BMG1xb1LFj5ASVjigYafhnzvAoY8D2amxYyzivqQ5MY4) · [возвращаемое](https://kappa.lol/1xlx7d) · [чисел](https://rentry.co/gallery-191650) · [случаи](https://annafournier654.overblog.fr/2026/10/post-6.html) · [следим](https://paste2.org/wEygvJev) · [способ](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/10/t-rk-nl-lerin-sevi-me-sahneleri-784370.pdf) · [разбор](https://privatebin.devol.it/?6ef598beb70a36eb#6y1mxTXhLfLDesAUkH9M2bhufMQmatHuojskNkL8qsHc) · [научиться](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [такой](https://paste2.org/4131s0cL) · [деление](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/fibonacci-tests-mvb5itgz.md) · [Найти](https://privatebin.devol.it/?8864e136fe947bda#2vzaS4w5z9RwPfxVturKAntxhUhTkA2JDpvakRMamyDN) · [float](https://paste2.org/dOIYhUWJ) · [ValueError("пустой](https://paste2.org/mKhfKt8A) · [ошибка](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/ragatha-x-jax-rule-34-abfdf8.pdf) · [делать](https://oksanam14.wixsite.com/my-site-1/post/ertassla-if%C5%9Fa) · [памяти](https://batbro.ru/alina+nikitina+nudes?f=instapaper) · [формат](https://artofhosting.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/sheikah-slate-iphone-wallpaper-92a9a0.pdf) · [делится](https://paper.wf/gretawagner64log/justinebean) · [работы](https://hey.xyz/posts/3nhjbrm9xm1m8q1dzd) · [пустой](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [приходит](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg)

