Я пишу функцию в Python, которая берет список списков чисел и печатает средние значения в каждой строке. Но когда я это делаю, он печатает ответы, а затем дает блок ошибок, который я не могу найти на веб-сайте документации python.Функция в Python дает странный набор ошибок, но выводит правильный ответ
def avg(lst):
"""lst is a list that contains lists of numbers; the
function prints, one per line, the average of each list"""
count = 0
while count<=(len(lst)):
print(sum(lst[count])/(len(lst[count])))
count = count + 1
Когда это будет работать с LST [[95, 92, 86, 87], [66, 54], [89, 72, 100], [33, 0, 0]], он дает выход:
>>> avg([[95, 92, 86, 87], [66, 54], [89, 72, 100], [33, 0, 0]])
90.0
60.0
87.0
11.0
Traceback (most recent call last):
File "<pyshell#38>", line 1, in <module>
avg([[95, 92, 86, 87], [66, 54], [89, 72, 100], [33, 0, 0]])
File "<pyshell#37>", line 7, in avg
print(sum(lst[count])/(len(lst[count])))
IndexError: list index out of range
Ответы правильные, но я не уверен, почему возникла эта ошибка. Есть идеи?
EDIT: изменена во время подсчета < (LEN (ЛСТ) + 1): в то время как рассчитывать < = (LEN (ЛСТ)): По-прежнему дает ту же ошибку
Я изменил эту строку в то время как счетчик <= (Len (LST)): и он по-прежнему дает тот же набор ошибок –
'count <= (len (lst))' такой же, как 'count <(len (lst) +1)' – khelwood
'count <= (len (list))' это то же самое, что 'count <(LEN (ЛСТ) +1) '. Попробуйте 'count
tdelaney