# Writing tests for computing an average (part 878f)

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

## Задача

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

## Решение

```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  # и второй случай
```

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

Тесты вида assert удобны для учебных задач: они короткие, наглядные и не требуют фреймворков.

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

[тестов](https://writefreely.ethibox.fr/oz8c420a/chun-mo-mo-lu-dian-xie-zhen-8tao-xin-zuo-sha-mo-hu-qiu-nu-pu-guang) · [разобрать](https://ecency.com/@jirisvoboda1887/nurseli-aksoy-if-a-706cac) · [имеет](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [Такой](https://trailsupplyco.com/Jaileen?f=linkcentre) · [пустой](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/mafioso-x-chance-r34-3e40c4.pdf) · [Проверка](https://exhibit52270.mataroa.blog/blog/prunhob/) · [print(average([2](https://rentry.co/dwkpwva8) · [понятная](https://sway.cloud.microsoft/U9wf51Bu69ZbBYIN) · [делать](https://www.sfahba.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/joshbigosh-gay-porn-7a4861.pdf) · [пустым](https://clarasimon273.overblog.fr/2026/10/post-9.html) · [Задача](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [Найти](https://statics.pancake.vn/web-media-264/aa/40/60/b6/58b94c7132ad2075e259972b6107cb23594aaa55554107cb142e451a.pdf) · [списка](https://victorfischer46.wixsite.com/my-site-1/post/%D8%B3%D9%83%D8%B3-%D8%B9%D8%B1%D8%A8%D9%8A-%D9%83%D8%A7%D9%85%D9%84%D9%87-%D9%81%D9%8A%D8%AF%D9%8A%D9%88%D9%87%D8%A7%D8%AA-%D9%86%D9%8A%D9%83-%D8%B9%D8%B1%D8%A8%D9%8A%D8%A9-hd-%D9%85%D8%AC%D8%A7%D9%86%D9%8A%D8%A9) · [ломается](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/verygsyboys-4a462d.pdf) · [float](https://statics.pancake.vn/web-media-264/f0/8b/d3/83/85e6c4ce0ee42bd571662e6500e8e15a64451ef652bcabad4a54e4f6.pdf) · [быстро](https://dionescu0.wixsite.com/my-site-1/post/%D8%B3%DB%8C%DA%A9%D8%B3-%D9%BE%D8%B4%D8%AA%D9%88-%D8%AC%D8%AF%DB%8C%D8%AF-%D9%88%DB%8C%D8%AF%DB%8C%D9%88%D9%87%D8%A7%DB%8C-%D8%A7%D9%81%D8%BA%D8%A7%D9%86%DB%8C-%D9%88-%D8%AA%D8%A7%D8%AC%DB%8C%DA%A9-%D8%A8%D8%A7-%D8%B3%D8%B1%D9%87%D8%A7-%D8%AE%D8%A7%D9%86) · [return](https://paste.rs/5z52P) · [ошибки](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/grmo033-b5cad9.pdf) · [average(arr](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [случайной](https://ole4ka.com/spip+sarka-spip+collectif+sarka-spip+gpl+texte+de+votre+message?f=instapaper) · [второй](https://montage38780.mataroa.blog/blog/mia_whitte-nude/)

