Форум сайта python.su
0
Здравствуйте. Я изучаю питон второй день. Знаком с c++, а тут не могу понять, как работать с элементами списка. Почему компилятор выдает ошибку?
#!/usr/bin/python peopleSum = int(input()) peopleInfo = [] average = None if (peopleSum >= 1 and peopleSum <= 100): for i in range(peopleSum): peopleInfo.append(raw_input().split()) average = (int(peopleInfo[2]) + int(peopleInfo[3]) + int(peopleInfo[4])) / 3 for i in range(len(peopleInfo)): print (peopleInfo[i]) print (average)
Офлайн
61
в третьем питоне нет raw_input
только во втором - это навскидку. Или покажите трейс ошибки
Офлайн
857
NemovokУ тебя неправильно выравнена строка с average, из-за этого она оказывается в цикле и обращается к элементам списка, которых ещё нет в списке.
Почему компилятор выдает ошибку?
Офлайн
73
учтя все замечания выше опять будет ошибка. дело в том что в список peopleInfo ты добавляешь не просто элемент а список из элементов peopleInfo.append(input().split()) а далее пытаешься превести к типу инт
average = (int(peopleInfo[2]) + int(peopleInfo[3]) + int(peopleInfo[4]))
Отредактировано marvellik (Дек. 10, 2016 08:34:31)
Офлайн
-8
Зачем писать average = None? Параметры переменной задаются позже тобой.
Офлайн
568
python335Если вы внимательно посмотрите на код в стартовом посте, то узрите, что присваивание переменной average происходит в блоке if, а использование вне блока. То есть если блок не выполнится, то вы получите исключение - обращение к необъявленой переменной.
Зачем писать average = None? Параметры переменной задаются позже тобой.
Отредактировано FishHook (Дек. 10, 2016 19:53:41)
Офлайн