首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >A453任务3编程

A453任务3编程
EN

Stack Overflow用户
提问于 2015-11-25 20:56:11
回答 1查看 10.2K关注 0票数 0

我现在是GCSE的学生,正在学习计算机科学。我和我的老师正在努力完成任务3。任务的要求是:然后它需要询问用户他们想要查看什么课程

在此之后,将需要询问他们是否希望查看按字母顺序排序的文件、特定班级的高分,或者是否希望查看所选班级中每个学生的平均值

代码语言:javascript
复制
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行的"index out out of range“有一个问题。

我的文本文件包含:

Roo,2,3,

Roo,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)告诉我它超出了范围?有什么解决方案吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-25 21:09:23

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

在您的代码中,您有一些行,每个行都有三个元素,并且您试图访问row[3],这将是第四个元素(不存在的)的索引,这就是您的错误。

此外,如果你的老师正在“挣扎”解决这样一个基本的问题,你可能应该找一个称职的老师来代替。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33917102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档