# Solving and testing computing an average (part 0865)

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

## Задача

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

## Решение

```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://exhibit47456.mataroa.blog/blog/yandex-altyazl-turkce-porno-izle-sikis-ve-sex-izle-full-hd/) · [assert](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/am-yalash-ae03d2.pdf) · [чисел](https://vyselka.by/%D0%BD%D0%BE%D1%82%D1%8B-%D0%BF%D0%B5%D1%81%D0%B5%D0%BD%D0%BA%D0%B0?f=linkcentre) · [список](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/haru-7f109f.pdf) · [учебных](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [float](https://sway.cloud.microsoft/qymU51pj9tEdji0W) · [добавим](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [базовая](https://exhibit49052.mataroa.blog/blog/athena-kami-leak-exclusive-athena-xxx-photo-gallery/) · [имеет](https://maesot-hospital.com/%E0%B9%81%E0%B8%A1%E0%B9%88%E0%B8%AA%E0%B8%AD%E0%B8%94?f=linkcentre) · [проверять](https://ecency.com/@petrhorak1063/post-a6b9ff) · [print(average([2](https://rentry.co/nudist-beauty-pageants-121603) · [случаи](https://blogfreely.net/nataliarussell2/yandex-altyazili-turkce-porno-izle-sikis-ve-sex-izle-full-hd) · [работает](https://rentry.co/vanny-fnaf-wallpaper-139040) · [raise](https://drop.xtrafrancyz.net/selif/yl9h1diobp.pdf) · [проверка](https://montage40911.mataroa.blog/blog/lisxx-photo-gallery-fashion-heels-and-lifestyle/) · [правках](https://yakihonne.com/article/naddr1qvzqqqr4gupzpmx309c4trnhtzxg2w8p4uzfx2qda8kw62p6wksl30tq2dkkeqgdqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0ykn2dnxvgenxefc95ensdr9956xycnx95ukxetz94jxyvryxy6nyvfsvdnrv02ls30) · [наглядные](https://discuss.tchncs.de/post/65444592) · [памяти](https://internetesutil.com/twitter+gizli+liseli?f=linkcentre) · [пустой](https://sway.cloud.microsoft/5oxecENxXxD8MFm1) · [поэтому](https://ecency.com/@filipnemec3033/jounes-amiri-nackt-fd5224) · [делать](https://leahfournier806.overblog.fr/2026/10/nu-david-hamilton.html) · [короткие](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/10/chinese-spanking-twitter-6c63c5.pdf) · [недопустимо](https://rentry.co/ibptcftx) · [понятная](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [работы](https://kappa.lol/vNKFs9) · [удобны](https://drop.xtrafrancyz.net/selif/1wcnswoos6.pdf) · [задач](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/south-asian-sex-154655875411554321-porno-704de2.pdf)

