A453任务3编程

时间:2015-11-25 12:56:11

标签: python coding-style computer-science

我目前正在攻读GCSE学生的计算机科学。我和我的老师正在努力完成任务3.任务的要求是: 然后需要询问用户他们想要查看的班级 在此之后,它将需要询问他们是否希望按字母顺序查看文件,特定班级的高分或他们是否想要查看所选班级中每个学生的平均值

import csv  
print("1 for Class A\n2 for Class B\n3 for Class C")  
choosen=int(input())  
class_a = open('class_a.csv')  
class_b = open('class_b.txt')  
class_c = open('class_c.txt')  
if choosen == 1:  
 print("1 for for alphabetical orderwith each students highest score\n2 for highest score, highest to lowest\n3 for average score, highest to lowest")  
    cho_two=int(input())  
    csv_a = csv.reader(class_a)  
    a_list = []  
    for row in csv_a:  
        row[1] = int(row[1])  
        row[2] = int(row[2])  
        row[3] = int(row[4])  
        minimum = min(row[1:2])  
        row.append(minimum)  
        maximum = max(row[1:2])  
        row.append(maximum)  
        average = sum(row[1:2])//3  
        row.append(average)  
        a_list.append(row[0:9])  
    if cho_two == 1:  
        alphabetical = [[x[0],x[6]] for x in a_list]  
        print("\nCLASS A\nEach students highest by alphabetical order \n")  
        for alpha_order in sorted(alphabetical):  
            print(alpha_order)  
            class_a.close()  
    elif cho_two == 2:  
        print("\nCLASS A\nThe highest score to the lowest \n")  
        for high_scr in sorted(highest_score,reverse = True):  
            print(high_scr)  
            class_a.close()             
    elif cho_two == 3:  
        average_score = [[x[8],x[0]] for x in a_list]  
        print("\nCLASS A\nThe average score from highest to lowest \n")  
        for ave_scr in sorted(average_score,reverse = True):  
            print(ave_scr)  
            class_a.close()  

我在python中运行的代码告诉我第13行出现“索引超出范围”的问题

我的文字文件包含:
小豆,2,3,
小豆,4,4,
阿尔菲,5,8,
阿尔菲,2,8,
鲍勃,2,8,
康纳,3,5,
康纳,5,3,
埃利斯,5,6,
乔治,5,4,
埃利斯,4,9,
弥敦道,5,6,
乔治,5,5,
阿尔菲,9,4,
乔治,4,7,
塞利斯,4,5,
狮子座,3,2,
塞利斯,6,1,
狮子座,5,2,

当我运行程序代码时,行1 = into(行1)告诉我它超出了范围?任何解决方案?

1 个答案:

答案 0 :(得分:4)

Python - 与大多数编程语言一样 - 使用从零开始的索引,这意味着序列的第一个元素位于索引0,最后一个元素位于索引len(sequence) - 1

在你的代码中,你有每行有三个元素的行,你试图访问row[3],这将是(不存在的)第四个元素的索引,因此你的错误。

如果你的老师正在挣扎,那么#34;有了这样一个基本问题,你应该找一位称职的老师。