Grady_1234 2019-10-31 09:34 采纳率: 90.9%
浏览 2288
已采纳

出现list index out of range错误如何解决?

4.scores.txt文件存放着某班学生的计算机成绩,包含学号、平时成绩、期末成绩三列。请根据平时成绩占40%,期末成绩占60%的比例计算总评成绩,并按学号、总评成绩两列写入另一个文件scored.txt中。同时在屏幕上输出学生总人数,按总评成绩计算90分以上、80~89分、70~79分、60~69分、60分以下各成绩区间的人数和班级总平均分(取小数点后两位)。

f = open("score1.txt",encoding='gb18030', errors='ignore')
a = f.readlines()
del a[0]
L3=[]
for line in a:
    line=line.strip()
    L1=line.split()
    f_score=int(int(L1[1])*0.4+int(L1[2])*0.6)
    L3.append([L1[0],f_score])
f.close()
c=[0,0,0,0]
count=0
sum=0
f2 = open("score2.txt",'w')
f2.write("学号 平均成绩\n");
for L2 in L3:
    if 90<f_score <=100:
        c[0] += 1
    elif f_score >=80:
        c[1] += 1
    elif f_score >=70:
        c[2] += 1
    elif f_score >=60:
        c[3] += 1
    else :
        c[4] += 1
    count += 1
    sum+=L2[1]
    f2.write(L2[0]+""+str(L2[1])+"\n")
f2.close()
avg_score = int(sum/count)
print("学生总人数为%d,按总评成绩计,90以上%d人,80-90有%d人,70-80有%d人,60-70有%d人,60以下有%d人,班级总平均分%d分。"%d(count,c[0],c[1],c[2],c[3],c[4],avg_score))

运行出现Traceback (most recent call last):
File "C:\Users\user\Desktop\T4.py", line 9, in
f_score=int(int(L1[1])*0.4+int(L1[2])*0.6)
IndexError: list index out of range

  • 写回答

2条回答 默认 最新

  • 毕小宝 博客专家认证 2019-10-31 09:50
    关注

    L1 数组值先打印一下,直接用L1[1],L1[2] 下标 1、2 超长说明 L1 的长度可能不是3.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)