Мне поставили эту задачу в классе колледжа CS.По-прежнему новое в словарях и наборах и кодирования в целом.Так что я ищу более питонический способ для раздела userInput для словаря.Это работает для моих нужд, но это будет утомительно для чего-то большего, чем это.Да, я видел другие вопросы об этой аналогичной функции от CodeAcademy, но у них нет ответа на мою проблему.Спасибо заранее за любые данные.Береги себя.
gradeBook = {
"student1" : {
"name": "Andy",
"homework": [90.0, 85.0, 78.0, 92.0],
"quizzes": [85.0, 87.0, 90.0, 75.0, 95.0],
"tests": [85.0, 65.0]
},
"student2" : {
"name": "Brad",
"homework": [88.0, 78.0, 86.0, 99.0],
"quizzes": [88.0, 82.0, 100.0, 74.0, 82.0],
"tests": [90.0, 92.0]
},
"student3" : {
"name": "Billy",
"homework": [81.0, 79.0, 80.0, 50.0],
"quizzes": [80.0, 78.0, 95.0, 80.0, 84.0],
"tests": [95.0, 93.0]
}}
for k, v in gradeBook.items():
print()
for k in v:
print(k + ':', v[k])
print()
userInput = input("Which students' average would you like to view: \nAndy, Brad, or Billy? \n")
print()
#assigning userInput to a students dictionary
if userInput == "Andy":
userInput1 = gradeBook["student1"]["homework"]
userInput2 = gradeBook["student1"]["quizzes"]
userInput3 = gradeBook["student1"]["tests"]
elif userInput == "Brad":
userInput1 = gradeBook["student2"]["homework"]
userInput2 = gradeBook["student2"]["quizzes"]
userInput3 = gradeBook["student2"]["tests"]
else:
userInput1 = gradeBook["student3"]["homework"]
userInput2 = gradeBook["student3"]["quizzes"]
userInput3 = gradeBook["student3"]["tests"]
def get_average(userInput):
averageHW = sum(userInput1) / len(userInput1)
averageQ = sum(userInput2) / len(userInput2)
averageT = sum(userInput3) / len(userInput3)
print(averageHW, averageQ, averageT) #normal average
wAverageHW = averageHW * 0.10
wAverageQ = averageQ * 0.30
wAverageT = averageT * 0.60
print(wAverageHW, wAverageQ, wAverageT) #weighted average
get_average(userInput)