Python

Выяснить кто сколько набрал баллов и напечатать в файле csv пример: Важная;5;4;5;4 и посчитать сколько у нее баллов

Из данных файла выяснить кто сколько набрал баллов и напечатать. Выяснить кто набрал макс. балл и мин. балл.
Важная;5;4;5;4
Веселая;5;5;5;5
Вредная;3;3;5;5
Грустный;4;5;5;5
Иванов;5;4;4;5
Иванович;5;5;5;5
Наглецов;3;3;5;5
Неуверенный;5;4;5;4
Петров;4;4;3;5
Сидоров;5;3;5;4
Счастливый;5;5;4;5
Удачливый;5;3;5;4
Проходной балл;18;;;
Ну, читаем, разбиваем по точке с запятой и суммируем от 2-го элемента и далее. Затем ищем максимальное и минимальное по этому показателю. Файл как должен называться? Ну, допустим, scores.csv:
 from itertools import chain
def fmt(t): s, n = t; return f"{n}: {s}"

with open("scores.csv", "r") as f:
fields = (s.split(';') for s in f)
scores = ((sum(int(m) for m in marks if m), name) for name, *marks in fields)
mn = mx = next(scores)
final = chain([mn], ((mn := min(mn, s), mx := max(mx, s), s)[-1] for s in scores))
print("Все результаты:", *map(fmt, final), sep = '\n')
print("Максимум и минимум:", *(fmt(mx), fmt(mn)), sep = '\n')

Обрабатываем весь файл за один проход, с константными требованиями по памяти (не зависящими от длины файла).
Строим итератор записей, разбитых по полям.
На его основе строим итератор пар (суммарная оценка, имя), первой идёт оценка, чтобы удобнее было искать экстремумы.
На основе предыдущего итератора строим итератор с побочным эффектом, подсчитывающий максимум и минимум оценок.
Затем выводим полный список кандидатов с оценками. После этого файл полностью прочитан, поэтому закрываем файл, и тогда уже выводим отдельно максимум и минимум оценок.

Если нужно отфильтровать строку "Проходной балл", то это можно сделать в любом из итераторов. Например, во втором, куда строки подаются уже разбитые по полям:
 scores = ((sum(int(m) for m in marks if m), name) for name, *marks in fields if name != "Проходной балл") 
GM
Gadam Meredow
87 571
Лучший ответ