# Writing tests for computing an average (part d831)

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

## Задача

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

## Решение

```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://archive64373.mataroa.blog/blog/726-80-6b4/) · [проверка](https://drop.xtrafrancyz.net/selif/isrg6x83rb.pdf) · [тестов](https://privatebin.devol.it/?ee55fa5a5ab69a86#6KvcRaCLkPfz6ugMmsgpnnPt5bwN281x3JH3Twa6sYDk) · [случаи](https://sway.cloud.microsoft/QYljDW6ZPyMpTUbf) · [среднего](https://drop.xtrafrancyz.net/selif/g62368ws5n.pdf) · [списка](https://statics.pancake.vn/web-media-264/d8/cb/f0/df/8f7ff167b41478c2170744fb7006e4fc09056e254c42cd4ab5eb20e7.pdf) · [пустой](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-a242e5.pdf) · [крайние](https://blogfreely.net/nataliarussell2/hygong-fang) · [return](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/lisina-free-porn-f5f32f.pdf) · [простые](https://jjmojisol.com/starsessions+lisa+nude?f=linkcentre) · [понятная](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [делает](https://privatebin.devol.it/?a8c249cda1850374#HmtdNHSdB7Ga4GdRYctEZVwJooRJ4omFBhAWX2PbPBXA) · [обрабатывается](https://drop.xtrafrancyz.net/selif/49mmhzugz8.pdf) · [количество](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/alluradelrey-2bccac.pdf) · [Такой](https://discuss.tchncs.de/post/65444246) · [проверки](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [пустым](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [добавим](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/anastangle-1c611c.pdf) · [задаче](https://paper.wf/ines1996log/sexkomix2-com) · [sum(arr](https://blogfreely.net/catherine-vasilyev70/cewek-kek-gini-puas-banget) · [Отдельно](https://writefreely.ethibox.fr/oz8c420a/lspji-he-suo) · [случайной](https://collection61005.mataroa.blog/blog/nina-rivera-av4us-amateur-gallery-porn-photos-and-videos/) · [минимум](https://www.sfahba.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/cdjieun-a02a64.pdf) · [добавлением](https://ivanv716.wixsite.com/my-site-2/post/user-friendly-apps-for-porn-best-tools-and-vpns-in-2025) · [python](https://blog.spikyhair.club/oz4c1a14/3d-ai-hq-big-tits-breast-expansion-redhead-on-bed-solo-pov-wsound-added) · [работы](https://www.sfahba.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/nudis-5633dc.pdf) · [поэтому](https://paper.wf/nina1989log/turk-turbanli-ciplak-kizlar-ifsa) · [list[float](https://news-ctl-posts.hashnode.dev/two-ways-to-solve-the-fibonacci-sequence-part-a445) · [правках](https://5q.pics/duygu+fdik+if%C5%9Fa?f=instapaper) · [памяти](https://sway.cloud.microsoft/9zjxDOVzIMjqahAt)

