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

Python使用字典存储学生成绩列表 按输入查询平均分相关问题

问题汇总
  • 语法错误:平均分计算逻辑错误,将除法运算放入了sum()的参数中,sum()要求传入可迭代的序列(如成绩列表),传入单值int会触发int object is not iterable报错
  • 变量未定义:调用update()方法时传入的student变量未提前定义,导致新增John成绩失败,后续查询John时找不到对应键
  • 逻辑错误:第二段代码的判断条件name in StudentGrades.keys() == "Alcott"不符合布尔运算规则,无法正常匹配输入的学生姓名,且仅针对Alcott单独计算了平均分,没有通用适配所有学生的逻辑
  • 格式错误:存在括号缺失、缩进不对等基础语法问题,会直接导致代码运行失败
修复后完整实现代码
# 初始化学生成绩字典
StudentGrades = {
    "Alcott": [5, 9, 7],
    "Jerry": [3, 5, 2],
    "David": [8, 9, 8, 9]
}

# 打印初始学生信息
print("初始学生列表及成绩:")
for name, grades in StudentGrades.items():
    print(name, grades)

# 提前定义要新增的John成绩,解决update报错问题
new_student = {"John": [10]}
StudentGrades.update(new_student)
print("\n更新后学生列表及成绩:")
for name, grades in StudentGrades.items():
    print(name, grades)

# 循环查询学生成绩与平均分
while True:
    print("\n请输入要查询的学生姓名:")
    input_name = input().strip()
    if input_name in StudentGrades:
        grade_list = StudentGrades[input_name]
        average = sum(grade_list) / len(grade_list)
        print(f"你选择的学生:{input_name}")
        print(f"成绩列表:{grade_list}")
        print(f"平均分:{average}")
    else:
        print("输入的学生不存在!")
        break
输出效果说明
  • 运行后首先打印初始、更新后的全量学生姓名与对应成绩列表
  • 输入已存在的学生姓名,将直接输出该学生的成绩列表与平均分,无需为每个学生单独编写计算逻辑
  • 输入不存在的学生姓名后会提示错误并退出循环,符合需求逻辑

内容的提问来源于stack exchange,提问作者Victória Greco

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 18:15:05