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

如何在Python迭代循环中正确使用input()实现成绩录入功能

Python成绩计算器问题修复方案

错误原因

  • input() 函数仅支持传入1个字符串类型的提示参数,你代码中input("Score for subject?",x)多传入了未定义的变量x,这是触发报错的直接原因
  • 初始定义的scores为字典类型,但循环中直接将用户输入的成绩赋值给scores变量,覆盖了字典结构,无法实现存储每门科目成绩的需求
  • 首行输入提示存在语法错误,缺少关键词many

修正后代码

scores = {}
total = 0
subject_count = int(input("你完成了多少门科目? "))
for sub_num in range(1, subject_count + 1):
    # 直接在提示字符串中拼接当前科目序号,不需要给input传第二个参数
    score = input(f"第{sub_num}门科目的成绩:")
    scores[f"科目{sub_num}"] = int(score)
    total += int(score)

# 可选:输出统计结果
print(f"总成绩:{total}")
print(f"平均成绩:{total / subject_count:.2f}")
print("各科目成绩详情:", scores)

改动说明

  • 移除了input()的多余参数,通过f字符串拼接提示语实现科目序号的展示
  • 新增单独的score变量存储单门科目成绩,保留scores字典存储所有科目的成绩数据
  • 调整了输入提示的语义表述,更符合中文使用习惯
  • 补充了成绩统计结果输出的可选代码,可按需保留或删除

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 21:36:13