# Solving and testing computing an average (part 05a4)

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

## Задача

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

## Решение

```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://rimworld.gallery/m/random/t/16275) · [выбрасывается](https://radicle.network/nodes/seed.pipapo.org/rad%3Az4JsQBQduNhrxkf45M8zkyJRodxDH/issues/a4673ea911702fc88677b82acd4cb023c6b9109e) · [недопустимо](https://privatebin.devol.it/?84718c584750767a#6kuyrkhouMM6bmP4uczDp85iTuoTrvXuJjdjxcadTcpL) · [проверять](https://kappa.lol/2djt6N) · [Решение](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/10/yoursmalldoll-6547f9.pdf) · [sum(arr](https://paper.wf/olgawagner64log/chen-xiao-miao-fei-teng-de-ti-wen-xie-zhen-ji-841854) · [поэтому](https://drop.xtrafrancyz.net/selif/d7x2wjabje.pdf) · [проверка](https://kappa.lol/440k9e) · [списком](https://kappa.lol/sSIlGP) · [пустой](https://loc.edu/wp-content/uploads/event-manager-uploads/event_banner/2026/10/bokep-indo-ajak-istri-bercinta-romantis-427201.pdf) · [деление](https://avdc.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/oedy9-c55550.pdf) · [python](https://gal53798.carrd.co/) · [второй](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [случайной](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [работает](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [случай](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/anagram-oshibki-mvnvvbeo.md) · [raise](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/10/edg-4396-485bad.pdf) · [Хорошая](https://curated24318.mataroa.blog/blog/grandmas-huge-tits-splattered-with-cum-preview/) · [случаи](https://loc.edu/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-27541b.pdf) · [решение](https://jaflysilve.freeflarum.com/d/8985-8985-oedy9-porn-pics-and-xxx-videos-adult-photo-gallery) · [ломается](https://kappa.lol/riqTif) · [вызова](https://kappa.lol/qGYSZc) · [задач](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/dasha-gartman-761d01.pdf) · [короткие](https://hey.xyz/posts/3qyc3x56f78h51qnpwk) · [print(average([2](https://articlescad.com/makemodel-korea-hot-naked-korean-models-and-sexy-lingerie-galleries-395967.html) · [времени](https://sway.cloud.microsoft/GYFkyQFS6lZMrcSG) · [float](https://blogfreely.net/catherine-vasilyev70/dehati-sexy-suhagrat-devar-bhabhi-ne-manayi-suhagrat) · [Задача](https://paste2.org/djxC0f3X) · [привычка](https://privatebin.devol.it/?25fb2beb37dcac5e#5FZeULKrc377Y8AcQn1n77JXe3hmCer16XuiSHGfqr5C) · [количество](https://kovalmartin4.wixsite.com/my-site-1/post/2-teens-play-omegle-game--wild-omegle-chat-reactions)

