Помогите разобраться с задачкой. Python

Ввести оценки N учеников по K предметам (N > 10). Определить и вывести на экран количество учеников, не получивших ни одной оценки «5», а также количество неуспевающих учеников. Найти процент учеников, обучающихся на 4 и 5, процент отличников и процент неуспевающих студентов.


Ответы (1 шт):

Автор решения: moondust

Вот, сколотил на быструю руку, но должно работать

numbers = {}
n = int(input('Введите количество учеников: '))  # количество учеников
for f in range(1, n + 1):
    print('Ввод оценок', f, 'ученика\nВводите через пробел')
    lis = [int(i) for i in input().split()]  # ввод оценок через пробел
    print(lis)
    numbers.update([(f, lis)])

low = []
average = []
high = []

for f in numbers.keys():
    if 1 in numbers.get(f) or 2 in numbers.get(f) or 3 in numbers.get(f):
        low.append(f)
    elif 4 in numbers.get(f):
        average.append(f)
    else:
        high.append(f)
print('Количество учеников с низким баллом:',  len(low), '\n'
      'Количество учеников со средним баллом:', len(average), '\n'
      'Количество отличников:', len(high))


len_all = len(low) + len(average) + len(high)
percent_low = (len(low) * 100) / len_all
percent_average = (len(average) * 100) / len_all
percent_high = (len(high) * 100) / len_all
print('Процент учеников с низким баллом:', percent_low, '\n'
      'Процент учеников со средним баллом:', percent_average, '\n'
      'Процент отличников:', percent_high)
→ Ссылка