我现在是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行的"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)告诉我它超出了范围?有什么解决方案吗?
发布于 2015-11-25 21:09:23
像大多数编程语言一样,Python使用从零开始的索引,这意味着序列的第一个元素位于索引0,最后一个元素位于索引len(sequence) - 1。
在您的代码中,您有一些行,每个行都有三个元素,并且您试图访问row[3],这将是第四个元素(不存在的)的索引,这就是您的错误。
此外,如果你的老师正在“挣扎”解决这样一个基本的问题,你可能应该找一个称职的老师来代替。
https://stackoverflow.com/questions/33917102
复制相似问题