Ошибка в коде с дисперсией
Помогите, пожалуйста, найти ошибку в коде
length = int(input("Введите длину списка: "))
list = []
for i in range(length):
number = int(input("Введите число: "))
list.append(number)
sum = sum(list)
avg = sum / length
disp = sum((i - avg) ** 2 for i in list) / length
print("Сумма:", sum)
print("Среднее значение:", avg)
print("Дисперсия:", disp)
На строке с расчетом disp ничего не получается Строка была взята из другой программы
a = [8, 6, 0, 10]
avg = sum(a) / len(a)
disp = sum((i - avg) ** 2 for i in a) / len(a)
print("Среднее значение:", avg)
print("Дисперсия:", disp)
Ответы (2 шт):
Автор решения: tiovi
→ Ссылка
list
недопустимое имя, используйте другое.
Тут вы можете посмотреть ключевые слова в Python, которые не следует использовать для названия переменных, классов, функций
Автор решения: MarianD
→ Ссылка
Вы любите использовать имена стандартных функций в качестве обычных переменных.
Тем самым вы переписываете стандартные функции, и они просто перестают работать.
В вашем случае это имена sum
и list
. Я заменил эти имена именами sum_
и list_
(но только в местах, в которых они представляют обычные переменные), и все начало правильно работать:
length = int(input("Введите длину списка: "))
list_ = []
for i in range(length):
number = int(input("Введите число: "))
list_.append(number)
sum_ = sum(list_)
avg = sum_ / length
disp = sum((i - avg) ** 2 for i in list_) / length
print("Сумма:", sum_)
print("Среднее значение:", avg)
print("Дисперсия:", disp)
Тест:
Введите длину списка: 3 Введите число: 1 Введите число: 3 Введите число: 5 Сумма: 9 Среднее значение: 3.0 Дисперсия: 2.6666666666666665