文件score.txt中存储了学生的考试信息,内容如下
小明,98 小刚,90 小红,91 小王,98 小刘,80
请写代码,读取文件数据,并进行如下分析
1.最高分和最低分分别是多少?
2.得最高分的学生有几个?得最低分的学生有几个?
3.平均分是多少?
只要算分数吗
with open('score.txt', 'r') as f:
p = f.read().split()
stu={}
for i in p:
a = i.split(',')
stu[a[0]] = int(a[1])
score = list(stu.values())
max_score = max(stu.values())
min_score = min(stu.values())
max_stu = score.count(max_score)
min_stu = score.count(min_score)
avg_score = sum(score)/len(score)
print(max_score, min_score, max_stu,min_stu, avg_score)
读取文件数据存列表或者字典中,然后遍历。
with open('score.txt','r') as f:
data = f.read()
data = [s.split(',') for s in data.strip().split()]
dic = {d[0]:d[1] for d in data}
scores = list(map(int,dic.values()))
#print(scores)
smax, smin = max(scores), min(scores)
tmax, tmin = scores.count(smax), scores.count(smin)
average = sum(scores)/len(scores)
print('1.最高分和最低分分别为:',smax, smin)
print(f'2.得最高分的学生有{tmax}个,得最低分的学生有{tmin}个。')
print(f'3.平均分是多少:', average)
'''
输出结果:
#[98, 90, 91, 98, 80]
1.最高分和最低分分别为: 98 80
2.得最高分的学生有2个,得最低分的学生有1个。
3.平均分是多少: 91.4
'''