利用Python处理数据文件统计成绩

利用数据文件统计成绩

类型:文件处理

描述

利用附件中的成绩数据进行成绩统计,根据总分进行升序排序后,输出总分最低分和最高分,按总分升序输出前n名同学和后n名同学成绩信息(n为非负数,当n大于数据行数时,按实际行数输出),输出每题的平均成绩。
(注:数据文件中最后一列是总分,第4-9列每列为一道题的成绩,打开与关闭文件代码已经给出)

输入格式

输入一个正整数

输出格式

参考示例

示例

输入:

2

输出:

最低分0分,最高分30分
[['12529', '朱佳年', '0121701100203', '0', '0', '0', '0', '0', '0', '0'], ['12347', '李世祥', '0121701100208', '0', '0', '0', '0', '0', '0', '0']]
[['11916', '杨旺霖', '0121701100527', '5', '5', '5', '5', '5', '5', '30'], ['11955', '罗家威', '0121701100622', '5', '5', '5', '5', '5', '5', '30']]
[3.11, 3.24, 2.97, 3.24, 2.57, 3.24]

参考答案

data = open('成绩单.csv','r', encoding='utf-8')
score = []
n = int(input())
for line in data:
    line = line.replace('\n','')
    score.append(line.split(','))
score.sort(key = lambda x:int(x[9]))
if n > len(score):
    n = len(score)
print('最低分{}分,最高分{}分'.format(score[0][9],score[-1][9]))
print(score[:n])
print(score[-n:])
#每道题的平均分
s=[0,0,0,0,0,0]
for i in range(len(score)):
    for j in range(len(s)):
        s[j] = s[j] + int(score[i][j+3])
for l in range(len(s)):
    s[l] = round(s[l] /len(score),2)
print(s)
data.close()

作者:m0_62488776

物联沃分享整理
物联沃-IOTWORD物联网 » 利用Python处理数据文件统计成绩

发表回复