# Solving and testing computing an average (part dd07)

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

## Задача

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

## Решение

```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://kappa.lol/ZRwjAL) · [становится](https://privatebin.devol.it/?f8d1dcca7728c035#AmsXCUKLyX7u3B5on2bHeqSbBt17Xw8zwujDzX23YXVf) · [assert](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [Такой](https://statics.pancake.vn/web-media-264/fc/85/54/cb/fc5384d1a9593e3b8f80a5da2573e5c714b747b08716757fa5081263.pdf) · [понятная](https://paper.wf/claraneumann65log/yerlyperkins-nude-photos-and-leaked-gallery-preview) · [проверка](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/bokep-indo-lonte-hijab-alim-yg-lagi-rame-924050.pdf) · [решение](https://sway.cloud.microsoft/gWjX73u2mUmDv7EP) · [python](https://blog.spikyhair.club/oza7ab90/kitty-duterte-nudes-and-leaked-photos-on-onlyfans) · [второй](https://news-ctl-posts.hashnode.dev/a-step-by-step-look-at-computing-an-average-part-f7fe) · [float](https://rentry.co/nodoboko-655982) · [кодом](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-67f311.pdf) · [sum(arr](https://yakihonne.com/article/naddr1qvzqqqr4gupzqzauhz9xtc2vka3ghj7cwt5mxndpsdg3es0qz8xt4ur00ln88pq9qy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0ykk2dpcv4snycnp95urxdnr956xyves95ukxerx94jkxefjv5ukxepjxvenjcckqy8) · [правках](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [имеет](https://kappa.lol/NXgbbT) · [чисел](https://ecency.com/@michalsvobo2011/fotos-desnuda-de-bella-due-as-dc2aa4) · [делать](https://jaflysilve.freeflarum.com/d/3763-3763-coakland) · [случайной](https://radicle.network/nodes/seed.cielago.xyz/rad%3AzuTGgFHgGwZVgvrb3oW1voMwXdw3/issues/6743f38396da1c38903c6d285e2d64c462e13f65) · [привычка](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [Решение](https://privatebin.devol.it/?6e96c9380491cf83#78ueiEPQtwRMqTz12NBw8eYZDm8Q8qGZXhTzYnZiHvBa) · [вызова](https://kappa.lol/eBKFhb) · [Хорошая](https://radicle.network/nodes/seed.pipapo.org/rad%3AzVCiAUDwfnVqeSMmuWFG8oVL21cY/issues/7dd374e1827a71091125bc76319a1a1b23592610)

