MiddleДебаггингРедкоЕщё не отвечали
Почему это среднее возвращает неверное значение?
average([1, 2]) должно быть 1.5, но возвращает другое.
def average(nums):
return sum(nums) // len(nums)
print(average([1, 2]))
Найдите и исправьте ошибку.
// — это деление с округлением вниз, поэтому average([1, 2]) возвращает 1, а не 1.5. Пустой список также вызывает ZeroDivisionError. Решение: использовать / для истинного деления и защитить пустой случай: return sum(nums) / len(nums) if nums else 0.
- ✗Путать
//(округление вниз) с/(истинное деление) - ✗Думать, что
//округляет к ближайшему, а не к минус бесконечности - ✗Забывать про ZeroDivisionError на пустом списке
- →Что делает
//с отрицательными операндами, например-7 // 2? - →Как вычислить целочисленное среднее, всё же округляя корректно?