【问题标题】:A453 Task 3 Programming [closed]A453 任务 3 编程[关闭]
【发布时间】:2015-11-25 12:56:11
【问题描述】:

我目前正在以 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 行出现“索引超出范围”的问题

我的文本文件包含:
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,

当我运行程序代码时,row1 = into(row1) 告诉我它超出了范围?有什么解决办法吗?

【问题讨论】:

  • 如果您可以将代码复制并粘贴到您的答案中,而不是添加它的图像,这将有所帮助。
  • 请不要发布您的代码编辑器的屏幕截图 - 代码是文本,文本可以在这里发布(如果不是太长 - 但如果太长,您应该发布一个简化的示例来重现问题)。
  • 我自己在学校帮忙,图片被过滤了,请添加为文本:)
  • 欢迎 :) 我建议将您的代码粘贴到其他人可以复制的地方,例如 GitHub Gists。另外,第二句结尾有什么遗漏吗?最后一件事:记住 Python 是零索引的,所以序列中的第一项索引是 0。
  • 我的代码现在对任何希望提供帮助的人提出问题

标签: python coding-style computer-science


【解决方案1】:

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

在您的代码中,每行包含三个元素,并且您尝试访问 row[3],这将是(不存在的)第四个元素的索引,因此您的错误。

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

【讨论】:

  • 你直接从我的键盘中取出了单词。
  • 同上。占据所有代表:D
  • 那是我的问题。我的老师都没有能力解决这个问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-11
  • 2011-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多