You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python字典平均值计算代码无法正常执行的原因是什么?

错误原因

你的代码在printAverage函数存在两处核心错误,导致平均值计算失败:

  • 取值逻辑错误:sum(grades)直接对字典求和时,Python默认会遍历字典的键(课程名字符串)计算,会直接触发类型错误。要计算成绩总和,需要提取字典的所有值参与计算,写法为sum(grades.values())。
  • 计数逻辑错误:
    1. 代码中的count是函数对象,直接对函数对象执行int(count)属于类型非法操作,会直接抛出报错
    2. 即便调用count(grades)也无法拿到课程数量,你编写的count函数只有打印逻辑,没有返回值,调用后得到的是None,无法参与数值计算

修正后的参考代码

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

# 修正count函数,增加返回值
def count(grades):
    n = len(grades)
    print(n)
    return n

def printAverage(grades):
    sum_grade = sum(grades.values())
    course_count = count(grades)
    # 用f-string避免字符串和数值拼接报错
    print(f"average grade:{sum_grade / course_count}")

内容的提问来源于stack exchange,提问作者munano

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 10:18:01