[英]Python dictionary average value function
Why the program does not want to calculate the average value from the dictionary?为什么程序不想从字典中计算平均值?
grades = {}
def addGrade(grades):
course = input("input course: ")
grade = int(input("input grade: "))
grades[course] = grade
def printGrades(grades):
print("all grades:")
for c, grade in grades.items():
print(c + "\t" + str(grade))
def count(grades):
n = len(grades.keys())
print(n)
def printAverage(grades):
print("average grade:" + sum(grades)/int(count))
You have to use你必须使用
sum(grades.values())
Otherwise it will be adding up all the key
s instead of the values (grades).否则它将把所有的key
加起来而不是值(等级)。
You have to add:你必须添加:
count = len(grades.keys())
Because it is not defined in your function.因为它没有在你的函数中定义。
The correct version of your function is:您的函数的正确版本是:
def printAverage(grades):
count = len(grades.keys())
print("average grade:" , sum(grades.values())/count)
The following should work:以下应该工作:
grades = {}
def addGrade():
course = input("input course: ")
grade = int(input("input grade: "))
grades[course] = grade
def printGrades():
print("all grades:")
for c, grade in grades.items():
print(c + "\t" + str(grade))
def count():
n = len(grades.keys())
return n
def printAverage():
print(f"average grade: {sum(grades.values()) / len(grades):.2f}")
if __name__ == '__main__':
number_of_courses = int(input('Enter number of courses: '))
for _ in range(number_of_courses):
addGrade()
printAverage()
sample output:示例输出:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.