Python成绩计算代码报TypeError:'int'对象不支持项赋值如何修复
错误原因
input()函数默认返回字符串类型,你没有做数值转换就直接用来做计算,会触发类型不匹配报错。- 累加成绩时错误使用了整个
quizGrade字典对象,而非当前循环对应的单条测验成绩quizGrade[x],如果此前误将quizGrade赋值为整数,就会出现你遇到的「int对象不支持元素赋值」报错。
修复后的可运行代码
quizW = .30 examW = .70 quizSum = 0 numQuiz = int(input("请输入测验次数: ")) quizGrade = {} for x in range(numQuiz): # 将输入的成绩转换为浮点型,兼容整数、小数格式的分数 quizGrade[x] = float(input(f"请输入第{x+1}次测验的成绩: ")) # 仅累加当前单次测验的成绩 quizSum += quizGrade[x] quiz_avg = quizSum / numQuiz print(f"测验总分:{quizSum},测验平均分:{quiz_avg:.2f}") # 后续可以继续补充考试成绩逻辑,计算总加权平均分 # exam_sum = 0 # num_exam = int(input("请输入考试次数: ")) # for i in range(num_exam): # exam_sum += float(input(f"请输入第{i+1}次考试的成绩: ")) # exam_avg = exam_sum / num_exam # total_avg = quiz_avg * quizW + exam_avg * examW # print(f"加权总平均分:{total_avg:.2f}")
如果你的成绩全部为整数,也可以将float()替换为int(),不影响运行效果。
内容的提问来源于stack exchange,提问作者Mahlyath
相关产品推荐
相关产品推荐

