@TheZezus
Учусь кодить на Python

Как усовершенствовать код?

Суть кода заключается в том,чтобы определить,кого из отличников,хорошистов и троечников в обучающемся классе больше,но проблема в том,что если троечников,хорошистов или отличников одинаковое количество,программа сама выберет,кого больше,хотя по факту всё поровну,как это можно исправить?Помогите пожалуйста!
troechnik = 0 #троечники
goodechnik = 0 #хорошисты
excellentchik = 0 #отличники
all = 0 #отдельно взятый ученик
students = int(input("Введите количество учеников:"))
for grade in range(1, students + 1):
  all += 1
  print(all, "из", students, "учеников")
  students_grade = int(input("Какую оценку ученик получил?:"))
  if students_grade == 5:
    excellentchik += 1
  elif students_grade == 4:
    goodechnik += 1
  elif students_grade == 3:
    troechnik += 1
if goodechnik < excellentchik > troechnik:
  print("Сегодня больше отличников")
elif excellentchik < goodechnik > troechnik:
  print("Сегодня больше хорошистов")
else:
  print("Сегодня больше троечников")
print("Количество учеников,получивших 5:", excellentchik,";" , "Количество учеников,получивших 4:", goodechnik, ";","Количество учеников,получивших 3:", troechnik)
  • Вопрос задан
  • 121 просмотр
Пригласить эксперта
Ответы на вопрос 1
@Bright144
держи
d = {'5':["Сегодня больше отличников", 0],
    '4': ["Сегодня больше хорошистов", 0],
    '3': ["Сегодня больше троечников", 0]} #ученики с оценкой 3, 4, 5

students = int(input("Введите количество учеников:"))
print()
for grade in range(1, students+1):
    print(f'{grade}-й из {students} учеников')
    students_grade = input("Какую оценку ученик получил?:")
    d[students_grade][1] += 1
    print()

print(max(d.items(), key=lambda x: x[1][1])[1][0])
print("\nКоличество учеников,получивших 5:", d['5'][1], ";", "Количество учеников,получивших 4:", d['4'][1], ";", "Количество учеников,получивших 3:", ";", d['3'][1])
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы