Итак, на codecademy наткнулся на задчку:
Now let's write a get_letter_grade function that takes score as input and returns a string with the letter grade that that student should receive.
These are the grade cutoffs:
Scores 90 or above: return "A"
If 80 <= score < 90: return "B"
If 70 <= score < 80: return "C"
If 60 <= score < 70: return "D"
If score < 60: return "F"
Finally, pass your function the result of running get_average on lloyd and print the resulting letter grade.
Мой код:
#Заполнение словарей опущено
def average(lst):
s = 0.0
for num in lst:
s += num
av = s / len(lst)
return(av)
def get_average(dict):
for key in dict:
if key == 'tests':
tests_average = average(dict['tests'])
elif key == 'homework':
homework_average = average(dict['homework'])
elif key == 'quizzes':
quizzes_average = average(dict['quizzes'])
general_average = homework_average*0.1 + quizzes_average*0.3 + tests_average*0.6
return general_average
def get_letter_grade(score):
if score >= 90:
mark = 'A'
elif (score <= 80) and (score < 90):
mark = 'B'
elif (score <= 70) and (score < 80):
mark = 'C'
elif (score <= 60) and (score < 70):
mark = 'D'
elif score < 60:
mark = 'F'
return mark
x = get_average(lloyd)
result = get_letter_grade(x)
print(result)
При запуске ругается на то, что обращение к mark осуществляется до ее определения.
UnboundLocalError: local variable 'mark' referenced before assignment