I am trying to get my program to add all averages together to generate one big "class" average. The code is only taking the last individual average and dividing that by the number of students in calc_average. Any ideas? Here's my code:
def calc_average(total):
return total / student_num
def determine_score(grade):
if 90 <= grade <=100:
return 'A'
elif 80 <= grade <= 89:
return 'B'
elif 70 <= grade <= 79:
return 'C'
elif 60 <= grade <= 69:
return 'D'
else:
return 'F'
student_num=int(input('How many students?'))
for j in range(student_num):
scores = []
sum=0
total=0
for i in range(0,5):
score = int(input('Enter Test Scores'))
print ('Your letter grade is: ', determine_score(score))
scores.append(score)
sum=sum+score
iavg=sum/5
print('Your average is:', iavg)
total=total+iavg
cavg=calc_average(total)
abc_grade=determine_score(cavg)
print('Class average is: ' + str(cavg))
print("The class letter grade would be: " + str(abc_grade))
OUTPUT: How many students?2
Enter Test Scores80
Your letter grade is: B
Enter Test Scores80
Your letter grade is: B
Enter Test Scores80
Your letter grade is: B
Enter Test Scores80
Your letter grade is: B
Enter Test Scores80
Your letter grade is: B
Your average is: 80.0
Enter Test Scores90
Your letter grade is: A
Enter Test Scores90
Your letter grade is: A
Enter Test Scores90
Your letter grade is: A
Enter Test Scores90
Your letter grade is: A
Enter Test Scores90
Your letter grade is: A
Your average is: 90.0
Class average is: 45.0
The class letter grade would be: F
There are a couple things you can fix.
These will get your program to run as intended. However, there are still things you can do to make this closer to best practices.