在python中,从输入文件中读取行,打印每个名称,计算平均值

时间:2015-04-26 16:30:42

标签: python-2.7

我有一个名为'students'的输入文件,其中包含这样的行

tim 80 67 80
karl 65 56
nick 40 60 80 54 

我需要编写一个Python程序来计算每个学生的所有分数的平均值,并打印两列(名称,后跟平均值)。应将该文件的名称作为命令行参数读取。最好,我想使用str.strip和/或str.split。

我正在寻找关于如何比实际代码更多的建议(但代码也可以帮助)。我的思考过程是从行中删除名称并添加到列表的第一个元素,将名称后面的所有分数添加到列表的元素,而不是添加这些分数并除以该名称的总分数(使用LEN?)。打印出数学中的名称和结果,并执行此操作直到所有名称都被计算在内......但我不知道如何执行此操作。在堆栈上询问是我的最后一个选择,相信我,我几天来一直在寻找我的消息来源。

1 个答案:

答案 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结尾并且在

之后没有空格,则工作