Продолжаю постигать Python и возникла простая,на первый взгляд проблема.
Есть оценки по 3-ём дисциплинам(markgeometry,markalgebra,markinformatika)Мне надо посчитать количество 3,4,5 со всех объектов класса.
Проблемный участок кода ниже,всю программу не выкладываю,так как остальные блоки пока работают правильно.
Сразу напишу,что я тут предствавляю.
Цикл прохода по коллекции,входим в цикл. И начинаем с помощью условного оператора считать оценки.
То есть если по markgeometry стоит 3 или по markalgebra стоит 3 или по markinformatika стоит 3, то мы обновляем счётчик.
Аналогично и к другим оценкам. То есть условие в цикле проверяет каждый атрибут класса и если там есть указанная в условии оценка,то всё это добавляется в счётчик.
countfour1=0 countfive1=0 counttri=0 for student in studinfos: if (student.markgeometry==5) or (student.markalgebra==5) or (student.markinformatika==5): countfive1+=1 elif (student.markgeometry==4) or (student.markalgebra==4) or (student.markinformatika==4): countfour1+=1 elif (student.markgeometry==3) or (student.markalgebra==3) or (student.markinformatika==3): counttri+=1 print("Количество 5-рок = ", countfive1) print("Количество 4-рок = ", countfour1) print("Количество 3-ек = ", counttri)
Прикрепляю скриншот,и как вы видите там явно больше 3,4,5 при вводе и меньше после выполнения блока.
В одном случае у меня посчитало(И то неправильно, в другом показывает 0)Сразу напишу было и if вместо elif(но это ошибка), в условиях было вместо or -> and и убирал скобки из оператора ветвления.
Также ставил точки остановки и смотрел по-шаговое выполнение. Он всё видит, но не считает.
Сам оператор инкримента стоит правильно,потому что я в другой функции считаю студентов и он выводит правильное количество.