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).
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:
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.