利用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