# Two approaches to computing an average (part faab)

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

## Задача

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

## Решение

```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) по памяти.


## Альтернативный подход

Ту же задачу часто решают иначе: например, через рекурсию вместо цикла или через стандартную библиотеку вместо ручной реализации. Альтернатива обычно короче, но первое «ручное» решение лучше показывает механику работы алгоритма. Полезно написать оба и сравнить на одинаковых тестах.

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

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

[читаемости](https://radicle.network/nodes/index.radicle.garden/rad%3Az3KDRjNBdfPiKxeaoiw2ajSKqMDcv/issues/362d9d3e642b71a98e05c0c3bd8c2f91e8fc946f) · [тестах](https://hey.xyz/posts/3r5a28mqj5q13m5fhx6) · [решают](https://avdc.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/thanksgiving-aesthetic-wallpaper-laptop-d3961a.pdf) · [решениями](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/sieve-oshibki-mvbq0tb2.md) · [показывает](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [учебной](https://paste2.org/FK9y4tPE) · [ошибка](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/10/fidan-atalay-29b39c.pdf) · [работает](https://news-ctl-posts.hashnode.dev/solving-and-testing-bubble-sort-part-2c77) · [цикла](https://curated28843.mataroa.blog/blog/melody-marks-explicit-photos-and-videos-gallery/) · [Альтернативный](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [количество](https://articlescad.com/gv-381524.html) · [среднее](https://kappa.lol/qZ1xsX) · [задачу](https://hey.xyz/posts/1bcmyw9jt22b6n60erd) · [например](https://dricci93.wixsite.com/my-site-1/post/thothub-sophie-rain) · [через](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [алгоритма](https://statics.pancake.vn/web-media-264/1d/99/05/f1/fd8a6b9eae59c0e4a81aa8edec4b61b4c9f62646b6989ed8df1e961a.pdf) · [скорости](https://privatebin.devol.it/?76dad4c739e422a8#Ayf1wYAvdyrwJ4Y3x1nxBBj2EQ8d5hSTXRBGkJeWxwU5) · [sum(arr](https://ecency.com/@lukasfiala2580/tanababyxo-onlyfans-14f985) · [деление](https://ecency.com/@jirisvoboda1887/fadsex1-d0d57d) · [ValueError("пустой](https://privatebin.devol.it/?a25e61ba2b0989d1#3d9i8addqocSgLgSSR7pirmhBaTN3yJ8BzJaxcHVyEPt) · [часто](https://privatebin.devol.it/?cb3b5a15d4afdbff#6Md69kWGXgL9pEZWajrBDRukAHvGAvuFPtGee5EyYrqD) · [Отдельно](https://privatebin.devol.it/?26634847acb99851#FAPpv6YnaB75uw6HWNEkmFk366SHQbrdjRMnXa9LYL6B) · [average(arr](https://blogfreely.net/nathannazarov26/slb-n-m-twytr-swr-wmnshwrt-mn-hsbt-rby-mtnw) · [python](https://ekral29.wixsite.com/my-site-1/post/shawtyrosse) · [библиотеку](https://drop.xtrafrancyz.net/selif/qb9ysfsd2s.pdf) · [списка](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/use-me-to-stay-faithful-ellie-nova-b99d95.pdf)

