繁体   English   中英

Python字典平均值函数

[英]Python dictionary average value function

为什么程序不想从字典中计算平均值?

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))

你必须使用

sum(grades.values())

否则它将把所有的key加起来而不是值(等级)。

你必须添加:

 count = len(grades.keys())

因为它没有在你的函数中定义。

您的函数的正确版本是:

 def printAverage(grades):
      count = len(grades.keys())
      print("average grade:" , sum(grades.values())/count)

以下应该工作:

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()

示例输出:

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM