Рассмотрите возможность использования python dictionary для хранения счетчика букв_скор
. Вы можете инициализировать словарь со всеми 0 с помощью:
letter_score_count = { "A": 0, "B": 0, "C": 0, "D": 0, "F": 0}
Дать возвращаемое значение в функцииletter_score
с использованием return
ключевого слова
def letter_score(scores):
if scores >= 90:
return "A"
elif scores < 90 and scores >= 80:
return "B"
elif scores < 80 and scores >= 70:
return "C"
elif scores < 70 and scores >= 60:
return "D"
else:
return"F"
К тому времени вызовите метод letter_score
, используйте результат в качестве ключа словаря для увеличения счетчика каждой буквенной оценки при вводе оценок
letter_score_count[letter_score(scores)] += 1
В конце вы можете распечатать результат
print("There are " + str(letter_score_count["A"]) + " A's.")
Отредактированная версия из вашего кода.Надеюсь, что эта помощь
sum_of_scores = 0
number_of_exams = int(input("What is the size of the class? "))
print("Now enter the scores below.")
letter_score_count = { "A": 0, "B": 0, "C": 0, "D": 0, "F": 0}
def letter_score(scores):
if scores >= 90:
return "A"
elif scores < 90 and scores >= 80:
return "B"
elif scores < 80 and scores >= 70:
return "C"
elif scores < 70 and scores >= 60:
return "D"
else:
return"F"
for i in range(1, number_of_exams + 1):
scores = int(input("Student %d : " % (i)))
sum_of_scores += scores
letter_score_count[letter_score(scores)] += 1
average_score = sum_of_scores / number_of_exams
print("The average is " + str(average_score))
print("There are " + str(letter_score_count["A"]) + " A's.")
print("There are " + str(letter_score_count["B"]) + " B's.")
print("There are " + str(letter_score_count["C"]) + " C's.")
print("There are " + str(letter_score_count["D"]) + " D's.")
print("There are " + str(letter_score_count["F"]) + " F's.")