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.