To have it print the letter grade as a user enters a score you can do something like:
#Calculate average def calc_average(total): return total / 5 #Grading scale 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' #Enter 5 test scores scores = [] for i in range(1, 6): score = int(input('Enter score {0}: '.format(i))) print 'That\'s a(n): ' + determine_score(score) scores.append(score) total = sum(scores) avg = calc_average(total) abc_grade = determine_score(avg) print('Average grade is: ' + str(avg)) print("That's a(n): " + str(abc_grade))
The letter grade problem was that you were using total which was all the grades added up (hopefully more than 100 if you got at least a 20 on all 5 assignments), so it would always default to the else. You want to use the avg
so that it would give you the letter grade corresponding to the average:
abc_grade = determine_score(avg)
You can also omit the grade = total
line because you will never use grade after making this change.