Python选项卡

2024-04-26 21:15:42 发布

您现在位置:Python中文网/ 问答频道 /正文

对于此代码,我总是得到以下错误:

Traceback (most recent call last):
  File "E:/ankosh/trial13.py", line 14, in <module>
    if grades_mix[index_no]=="HM1":
IndexError: list index out of range)

我真的很感激你的帮助。你知道吗

  `file_pointer=open("C:/python27/Doc/student_grades.txt", "r")

   read_grades=file_pointer.readline()

   my_list=[]

   while 0==0:

    grades_mix=read_grades.split()

    name_str=grades_mix[0]

    contained_list=[name_str,0,0,0,0,0.0]

    index_no=1

    count_num=0

sum_float=0.0

avg_float=0.0

while 0==0:

         if grades_mix[index_no]=="HM1":

           index_no+=1

           grade_num=int(grades_mix[index_no])
        count_num+=1
        sum_float+=grade_num
        contained_list[1]=grade_num
    elif grades_mix[index_no]=="HM2":
        index_no+=1
        grade_num=int(grades_mix[index_no])
        count_num+=1
        sum_float+=grade_num
        contained_list[2]=grade_num
    elif grades_mix[index_no]=="HM3":
        index_no+=1
        grade_num=int(grades_mix[index_no])
        count_num+=1
        sum_float+=grade_num
        contained_list[3]=grade_num
    elif grades_mix[index_no]=="HM4":
        index_no+=1
        grade_num=int(grades_mix[index_no])
        count_num+=1
        sum_float+=grade_num
        contained_list[4]=grade_num

    index_no+=1
if count_num>0:
    avg_float=sum_float/count_num
contained_list[5]=avg_float
index_num=0
while index_num<len(my_list):
    if my_list[0]>name_str:
        break
    index_no+=1
my_list.insert(index_num, contained_list)
read_grades=file_pointer.readline()
   file_pointer.close()

   print format ("Name","<10")+" | "+format("HM1"," >5")+" | "+format("HM2"," >5")+" | "+format("HM3"," >5")+" | "+format("HM4"," >5")+" | "+format("avg_float"," <10")+" | "

   for index_no in range(0, len(my_list)):

    print format(my_list[index_num][0], "<10") + " | " + \

       format(my_list[index_num][1], " >5") + " | " + \

       format(my_list[index_num][2], " >5") + " | " + \

       format(my_list[index_num][3], " >5") +  " | " + \

       format(my_list[index_num][4], " >5") + " | " + \

       format(my_list[index_num][5], " >10.2f") + " | "

Tags: noformatindexifmycountfloatnum
2条回答

缩写形式如下:

while 0==0:
   if grades_mix[index_no]=="HM1":
      index_no+=1

没有break语句从循环中跳出(那while True怎么样。你迟早会超出射程的。你知道吗

错误消息

IndexError: list index out of range

指示您使用的索引在数组中不存在。试着通过打印出数组的长度来检查数组的大小

打印“数组等级长度\u mix=”,len(等级\u mix)

如果数组的长度小于或等于1,则在调用时第一步将出现错误

grades_mix[index_no]

index_no=1

可能您的文件包含空行或包含单个单词的行,您需要在脚本中注意这一点。你知道吗

相关问题 更多 >