‘’'文件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())