我有一个名为'students'的输入文件,其中包含这样的行
tim 80 67 80
karl 65 56
nick 40 60 80 54
我需要编写一个Python程序来计算每个学生的所有分数的平均值,并打印两列(名称,后跟平均值)。应将该文件的名称作为命令行参数读取。最好,我想使用str.strip和/或str.split。
我正在寻找关于如何比实际代码更多的建议(但代码也可以帮助)。我的思考过程是从行中删除名称并添加到列表的第一个元素,将名称后面的所有分数添加到列表的元素,而不是添加这些分数并除以该名称的总分数(使用LEN?)。打印出数学中的名称和结果,并执行此操作直到所有名称都被计算在内......但我不知道如何执行此操作。在堆栈上询问是我的最后一个选择,相信我,我几天来一直在寻找我的消息来源。
答案 0 :(得分:0)
file=open(filename,"r")
line = file.readline()
students=[]
while line != "":
splitedline=line.split(" ")
average=0
for i in range(len(splitedline)-1) :
print splitedline[i+1]
average+=int(splitedline[i+1])
average=average/(len(splitedline)-1)
students.append([splitedline[0],average])
line = file.readline()
print(students)
file.close()
如果您的文件以54结尾并且在
之后没有空格,则工作