# Solving and testing computing an average (part 8947)

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

## Задача

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

## Решение

```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 удобны для учебных задач: они короткие, наглядные и не требуют фреймворков.

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

[ValueError("пустой](https://loc.edu/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-8bfb74.pdf) · [обрабатывается](https://avdc.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/milftoon-t-rk-e-oku-1af61d.pdf) · [задаче](https://statics.pancake.vn/web-media-264/ef/db/af/80/4aee7131297a1e1205280261b7fba1dc35564e05ffa8c4f1c588b32b.pdf) · [простые](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/boobs-2022-movie-3289f2.pdf) · [делать](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-163b79.pdf) · [проверять](https://privatebin.devol.it/?827944d8ec94aa4c#5WSo4mtGtNCtEQVHWaK7fQL2pGJmPyRovN1ocdk5ukkP) · [Такой](https://artofhosting.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-4a007a.pdf) · [деление](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [len(arr](https://ecency.com/@karelnovotn6538/heaven-and-hell-difference-27f5b6) · [return](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [выбрасывается](https://paste2.org/Js8zV2AK) · [нескольких](https://thedickandjaneproject.org/russ+porn+tube?f=linkcentre) · [Пример](https://leahmartin397.overblog.fr/2026/10/valentina-midget-porno-nude-leaks-blowjob-anal-xxx-videos.html) · [списком](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/10/snapgod-leak-5af54b.pdf) · [среднего](https://exhibit40652.mataroa.blog/blog/russ-porn-tube-free-blowjob-amateur-and-anal-videos/) · [Задача](https://paste2.org/ap5zHgXp) · [требуют](https://radicle.network/nodes/seed.cielago.xyz/rad%3Az4FGoWqp9Bbk2zKZ7Wqo83mdJPsby/issues/c0216b2271693605a201e4b14f9676fec575e8fa) · [имеет](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/factorial-tests-mvdcri2c.md) · [второй](https://6u.pics/spitreligion?f=linkcentre) · [памяти](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [список](https://artofhosting.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/melissagstm-of-leaks-de9cfb.pdf) · [вызова](https://articlescad.com/kira-pregiato-onlyfans-leaks-and-bouncy-nude-photos-383603.html) · [времени](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/10/karol-santiago-chimocurves-5bd80a.pdf) · [базовая](https://claramichel102.overblog.fr/2026/10/rumingllb.html) · [Отдельно](https://artofhosting.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-ad367d.pdf) · [правках](https://ecency.com/@jirisvoboda1887/naim-darrechi-filtrado-fe9ae5)

