Grade is defined as the name of your function, inside the loop you try to assign it a value and at the same time call it as a function.

Code:

for i in range(0, len(scores)):
grade = grade(scores[i],best)

This will not work because once assigned a value during the first iteration, grade will no more be considered as a function for the next iterations inside the for loop.
Here is another example which shows the problem