# Solving and testing computing an average (part 2a92)

Разберём решение и сразу накроем его тестами — это хороший стиль работы с кодом.

## Задача

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

## Решение

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


## Проверка тестами

Хорошая привычка — проверять решение сразу на нескольких примерах, включая крайние случаи.

```python
assert is_valid(True) is not None  # базовая проверка вызова
assert is_valid(False) is not None  # и второй случай
```

Такой минимум уже защищает от случайной ошибки при правках кода.

С добавлением проверок решение становится самодокументируемым — сразу видно, что код делает.

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

[Решение](https://www.sfahba.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/celine-dept-sexy-b87db3.pdf) · [случайной](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [пустой](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/mallu-pussy-fuck-221efc.pdf) · [тестами](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/binary-search-razbor-mvgpe4di.md) · [привычка](https://ecency.com/@marekkral2859/hazey-haley-onlyfans-sex-d095b3) · [времени](https://statics.pancake.vn/web-media-264/1b/8a/ba/69/7fe58a675ad3a23c27be3486c14a4086f22c3909c896137d49f83405.pdf) · [return](https://www.sfahba.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/nena-magana-a28428.pdf) · [хороший](https://jaflysilve.freeflarum.com/d/4673-4673-cecejoker) · [работы](https://portfolio38799.mataroa.blog/blog/turk-ifsa-yandex-disk/) · [Проверка](https://hey.xyz/posts/29ges2mhqb6x6hkekgq) · [print(average([2](https://blogfreely.net/nathannazarov26/youngtube-lilu-porn-videos-featuring-lilu-moon-in-hd-scenes) · [проверка](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/suchtaboo-2fbe25.pdf) · [разобрать](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [выбрасывается](https://www.sfahba.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/inside-look-sheismichaela-s-private-only-d54956.pdf) · [Разберём](https://drop.xtrafrancyz.net/selif/814cawi3g1.pdf) · [минимум](https://paper.wf/greta1980log/ariana-real-tv-porn-curvy-model-lingerie-and-blowjob) · [добавлением](https://sway.cloud.microsoft/4zWKZZk75s1mw5pq) · [проверять](https://blogfreely.net/catherine-vasilyev70/turk-turbanli-ifsa-paylasim-atsulu8314) · [пустым](https://juliaroux804.overblog.fr/2026/10/escort-izmir-yol.html) · [работает](https://blogfreely.net/nataliarussell2/yuze-bosalma-sex) · [случай](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/quicksort-shagi-mvguc6hx.md) · [assert](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [защищает](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/quicksort-shagi-mvgtnt9b.md) · [sum(arr](https://rentry.co/6ir7u9go) · [крайние](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/my-step-mom-gives-me-nuru-massage-nina-e-94a9b8.pdf) · [чисел](https://yakihonne.com/article/naddr1qvzqqqr4gupzp8jfrt5l0qrr9qf8yc2lkvtqvyrf8nf4j90jal0rgk39vq05sl6eqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0ykkgcnp8pnxgd3k95crgetx956rgvfh95unsdek943kgc3jvycxven9vsukx0q890y)

