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

Python报TypeError: 'int' object does not support item assignment问题咨询

报错根本原因
  • 触发TypeError: 'int' object does not support item assignment的核心原因是:执行promedios[x] = float(punteos / 3)代码时,变量promedios的实际类型为整数(int),而非列表、字典等支持索引赋值的可变序列类型。整数属于不可变类型,本身不支持[索引]形式的赋值操作,因此触发该报错。
修改后代码的合理性评估

修改后的代码虽然规避了最初的类型报错,但逻辑存在明显缺陷,并不合理:

  • promedios列表定义在外层for循环内部,每遍历1门课程就会被清空重置,无法存储所有课程的平均分数值,仅能保留当前课程的3次中间计算结果。
  • 末尾的print(promedios[x])存在索引越界风险:内层循环仅会向promedios追加3个元素,索引最大值为2,当外层循环的x大于等于3时,访问promedios[x]会直接触发IndexError。
  • 内层循环每次录入成绩后都计算、存储中间平均值属于冗余操作,仅需在3个成绩全部录入完成后计算一次最终平均值即可。
简单优化方案

如果你的需求是存储5门课程的最终平均分,可做如下调整:

  1. 将promedios = []移到外层for循环的外部,避免每次循环被重置。
  2. 删除内层循环中的promedio1 = float(punteos/3)和promedios.append(promedio1)代码,在内层循环结束后统一计算当前课程的最终平均分,再追加到promedios列表中。
  3. 输出时直接打印promedios[x]即可获取对应课程的最终平均分,不会出现越界问题。

内容的提问来源于stack exchange,提问作者Mau España

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 23:45:03