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