Я продолжаю получать это сообщение об ошибке для моей программы на python: ValueError: max() arg — пустая последовательность

#python

#python

Вопрос:

Кажется, все остальное работает нормально. Требования заключались в том, что я использовал цикл for для получения входных данных для оценок учащихся, отображения имени для каждого учащегося, вычисления и отображения среднего значения этих 5 оценок и отображения наивысшей оценки. Я действительно не уверен, где я ошибаюсь. Пожалуйста, помогите! Вот программа ниже:

 #this program will compute average quiz grade for a group of 5 students
#prompt user for quiz grade using a for loop for each of the 5 students

#assign names to student list
students = ["John", "Jake", "Jane", "Sally", "Susie"]

#grades: 90-100=A, 80-90=B, 70-80=C, 60-70=D, <60=F


#prompt user for student grades
for student in students:
    grades = eval(input(f"Enter the grade for {student}: "))

grades = []
sum = 0
for i in range(0,5):
    for i in grades:
         sum =i
avg_grade=sum/5


#print average grade of students
if(avg_grade >=90):
    print("Average Grade: A")
elif(avg_grade>=80 and avg_grade<90):
    print("Average Grade: B")
elif(avg_grade>=70 and avg_grade<80):
    print("Average Grade: C")
elif(avg_grade>=60 and avg_grade<70):
    print("Average Grade: D")
else:
    print("Average Grade: F")



#print highest grade
max_grade=max(grades)
for i in grades:
    if(max_grade>=90):
        print("Highest Grade: A")
    elif(max_grade>=80 amp; max_grade<90):
        print("Highest Grade: B")
    elif(max_grade>=70 amp; max_grade<80):
        print("Highest Grade: C")
    elif(max_grade>=60 amp; max_grade<70):
        print("Highest Grade: D")
else:
    print("Highest Grade: F")
 

Комментарии:

1. Пожалуйста, прочитайте ericlippert.com/2014/03/05/how-to-debug-small-programs и попытайтесь проследить через вашу логику. То, что вы делаете в первой части программы, вообще не имеет смысла.

Ответ №1:

Это означает, что список grades пуст, поскольку вы не добавили никаких значений в список. Вы можете исправить это, выполнив:

 grades = []

for student in students:
    grade = eval(input(f"Enter the grade for {student}: "))
    grades.append(grade)
 

Обратите внимание, что это изменение находится в верхней части кода.

Ответ №2:

Попробуйте это, потому что ваши оценки пусты:

 grades = []
for student in students:
    grade = eval(input(f"Enter the grade for {student}: "))
    grades.append(grade)