Python出现'int对象不支持项赋值'错误,如何实现成绩录入求平均值?
错误原因
你代码中初始化scores = int(),将变量定义为了整数类型,整数属于不可变的标量类型,无法使用[索引] = 值的方式进行元素赋值操作,这是触发报错的直接原因。另外你原来写的scores[int(score)] = score逻辑本身也存在问题,相当于把成绩值当成列表下标来存储,会导致大量空间浪费还容易触发索引越界问题。
修复方案
要实现多成绩录入和平均值计算,你需要调整变量类型和逻辑结构:
- 初始化
scores为空列表,用于存储所有录入的成绩 - 录入成绩后使用列表的
append()方法追加元素,无需手动处理索引 - 简化循环逻辑,仅用一层循环控制录入流程,避免原代码中的嵌套死循环问题
- 结束录入后用
sum()求成绩总和,除以成绩总个数得到平均值
完整可运行代码
# 初始化空列表存储成绩 scores = [] while True: # 录入成绩并转为整数 score = int(input("Score: ")) scores.append(score) # 询问是否继续录入 again = input("输入N继续录入,输入F结束录入并计算平均值:") if again == "F": # 计算平均值 average = sum(scores) / len(scores) print(f"所有录入成绩:{scores}") print(f"平均分为:{average:.2f}") # 结束循环 break
内容的提问来源于stack exchange,提问作者Maple1508
相关产品推荐
相关产品推荐

