← Все вопросы

Как посчитать среднее арифметическое и не получить целое вместо дробного?

Задан 8 месяцев назад931 просмотров2 ответа
4

Считаю среднее оценок: сумма делить на количество. Но иногда получаю целое число, хотя должно быть с дробью. Например, среднее 4 и 5 у меня выходит 4, а не 4.5. Что не так?

2 ответа

9
✓ Принятый ответ — помог автору

Скорее всего ты делишь через // (целочисленное деление) — оно отбрасывает дробную часть. Для среднего нужно обычное /:

marks = [4, 5]
avg = sum(marks) / len(marks)
print(avg)  # 4.5

sum() складывает все элементы, len() даёт их количество. Используй именно / с одной чертой — тогда дробь сохранится.

Если хочешь округлить до 2 знаков для вывода: round(avg, 2).

3

Ещё нюанс: если список может оказаться пустым, len(marks) будет 0 и поделить не получится — поймаешь ZeroDivisionError. Защитись проверкой if marks: перед делением.

Ваш ответ

Войдите, чтобы ответить на вопрос.