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

Python成绩统计程序执行报错求助:TypeError类型错误

问题分析与解决方案

嘿,这个报错很好解决,咱们来一步步捋清楚:

错误根源

你碰到的TypeError: object of type 'int' has no len(),问题出在计算平均分的那行代码avg=sum1/(len(score)-1)里——这里的score是你每次输入的单个整数成绩,整数类型根本没有len()方法呀!

你本来应该用存储所有有效成绩的列表stu的长度,而且你前面已经正确用len(stu)统计学生人数了,这里明显是手滑写错了~另外,你也不需要写len(...) -1,因为输入-1时程序直接跳出循环,并没有把-1加入stu列表,len(stu)就是准确的学生人数。

修正后的完整代码

stu = list()
sum1 = 0
while True:
    score = int(input("Please enter the student's score:"))
    if score == -1:
        break
    stu.append(score)
    sum1 += score

# 增加空输入判断,避免除以0的报错
if len(stu) == 0:
    print("No student scores entered!")
else:
    print(f"Total {len(stu)} students")
    avg = sum1 / len(stu)
    print(f"Class total score {sum1} points, average grade: {avg} points")

额外优化说明

我还加了一个小判断:如果用户一开始就输入-1,此时stu列表是空的,直接计算平均分就会触发除以0的错误,提前判断后给用户友好提示,能让程序更健壮~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:23:53