‘’'文件score.txt中存储了学生的考试信息,内容如下
小明,98
小刚,90
小红,91
小王,98
小刘,80
请写代码,读取文件数据,并进行如下分析
- 最高分和最低分分别是多少?
- 得最高分的学生有几个? 得最低分的学生有几个
- 平均分是多少?
‘’’
def read_score(filename):
# 打开文件
f = open('score.txt', 'r', encoding='utf-8')
# 读取文件内容
data = f.readlines() #data = ['小明,98\n', '小刚,90\n', '小红,91\n', '小王,98\n', '小刘,80\n']
# data = [line.strip() for line in data] #['小明,98', '小刚,90', '小红,91', '小王,98', '小刘,80']
data = [line.strip().split(',') for line in data]
# print(data) #[['小明', '98'], ['小刚', '90'], ['小红', '91'], ['小王', '98'], ['小刘', '80']]
# 关闭文件
f.close()
return data
# 分析数据
def analyze_score():
scores = read_score('score.txt') # 读取文件数据,得到的是列表
score_lst = [] # 用来存放成绩
# 遍历列表 得到数字
for item in scores:
score = int(item[1]) # 得到成绩
score_lst.append(score) #score_lst=[98, 90, 91, 98, 80]
# 计算最高分和最低分
max_score = max(score_lst)
min_score = min(score_lst)
# 计算最高分和最低分的学生有几个
max_count = score_lst.count(max_score)
min_count = score_lst.count(min_score)
# 计算平均分
avg_score = sum(score_lst) / len(score_lst)
return {
'最高分': max_score,
'最低分': min_score,
'最高分学生有多少个': max_count,
'最低分学生有多少个': min_count,
'平均分': avg_score
}
if __name__ == '__main__':
print(analyze_score())