文件处理 • 将学生的名字和每次的分数一次存到一个txt文件里,存储格式为:每行一个记录,以逗号进行分割,如:
yh,100
yh,99
zmy,100
yh,96
zmy,100
读取该文件,记录同一个学生的所有分数和提交次数,计算学生的平均分数,并将其姓名,总分数,提交次数,平均分数保存到另一个txt中。
with open('a.txt', 'r', encoding='utf-8') as f:
p = f.readlines()
stu_dict = {}
for i in [x.split(",") for x in p]:
if stu_dict.get(i[0]):
stu_dict[i[0]]['总分'] += eval(i[1])
stu_dict[i[0]]['提交次数'] += 1
stu_dict[i[0]]['平均分'] = round(stu_dict[i[0]]['总分'] / stu_dict[i[0]]['提交次数'], 2)
else:
stu_dict[i[0]] = {'总分': eval(i[1]), '提交次数':1, '平均分':eval(i[1])}
s=''
for key, value in stu_dict.items():
s += f'姓名:{key}\n'
for key2, value2 in value.items():
s += f'{key2}:{value2}\n'
with open('b.txt', 'w', encoding='utf-8') as f:
f.write(s)
显示结果:
姓名:yh
总分:295
提交次数:3
平均分:98.33
姓名:zmy
总分:200
提交次数:2
平均分:100.0