# Solving and testing computing an average (part ed4d)

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

## Задача

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

## Решение

```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://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/son-and-mother-hentai-2d6e17.pdf) · [работает](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [кодом](https://ecency.com/@zdenekpospi7879/91-e0e8f4) · [крайние](https://hey.xyz/posts/2q0thsrhedk017dczv7) · [Задача](https://blogfreely.net/igorcollins26/dandys-world-toodles) · [количество](https://news-ctl-posts.hashnode.dev/two-ways-to-solve-the-sum-of-digits-part-2a54) · [разобрать](https://blogfreely.net/nathannazarov26/fernanda-agnes-xxx-fotos-y-videos-de-la-actriz-brasilena) · [стиль](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/starsessions-elena-190617.pdf) · [Разберём](https://discuss.tchncs.de/post/65439359) · [случайной](https://sway.cloud.microsoft/vgVO8RE1WCsogn4j) · [делать](https://ecency.com/@lukasfiala2580/mansi-negi-porn-video-watch-nude-onlyfans-bdsm-sexy-thong-cl-f23529) · [average(arr](https://sway.cloud.microsoft/LNASKAvTeMu131NH) · [поэтому](https://ecency.com/@janjelinek7089/sophie-lawson-nude-videos-c02f6a) · [len(arr](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [сразу](https://rentry.co/2024-733663) · [вызова](https://radicle.network/nodes/seed.cielago.xyz/rad%3Az3mQG6b8mWqx8a1ssy7urjSUPdAjx/issues/85382e71c7721855cacb2e45c837bbaa9a1acace) · [времени](https://hey.xyz/posts/bynzvnv4qne9kgang9) · [базовая](https://discuss.tchncs.de/post/65439723) · [элементов](https://ecency.com/@davidsedlac1461/men-s-cross-training-shoes-2023-best-for-wide-feet-runners-9a647a) · [Проверка](https://loc.edu/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-f50d74.pdf) · [пустой](https://ownforum.freeflarum.com/d/5164-5164-mesukemo) · [проверять](https://jaflysilve.freeflarum.com/d/1110-1110-sakimenz) · [assert](https://lucashorvat3.wixsite.com/my-site-1/post/%E8%8A%99%E5%AE%81%E5%A8%9Ccos) · [имеет](https://articlescad.com/ejen-ali-porn-379259.html) · [случай](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/10/inside-out-riley-nude-3b67c3.pdf) · [решение](https://pen.absturztau.be/ozd8c0fe/da-xiao-sao-lou) · [хороший](https://ecency.com/@vojtechurban2724/alyx-star-videos-best-hd-porn-scenes-and-xxx-clips-2d457c) · [чисел](https://gal48823.carrd.co/) · [примерах](https://jaflysilve.freeflarum.com/d/1134-1134-ahquamarine-fansly-exclusive-solo-and-anal-content) · [списком](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da)

