Wzero_ 2022-05-06 11:43 采纳率: 100%
浏览 59
已结题

python 写入文件 记录同一个学生

文件处理 • 将学生的名字和每次的分数一次存到一个txt文件里,存储格式为:每行一个记录,以逗号进行分割,如:
yh,100
yh,99
zmy,100
yh,96
zmy,100
读取该文件,记录同一个学生的所有分数和提交次数,计算学生的平均分数,并将其姓名,总分数,提交次数,平均分数保存到另一个txt中。

  • 写回答

1条回答 默认 最新

  • 请叫我问哥 Python领域新星创作者 2022-05-06 12:23
    关注
    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
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 5月14日
  • 已采纳回答 5月6日
  • 创建了问题 5月6日

悬赏问题

  • ¥15 安装opengauss数据库报错
  • ¥15 【急】在线问答CNC雕刻机的电子电路与编程
  • ¥60 在mc68335芯片上移植ucos ii 的成功工程文件
  • ¥15 笔记本外接显示器正常,但是笔记本屏幕黑屏
  • ¥15 Python pandas
  • ¥15 蓝牙硬件,可以用哪几种方法控制手机点击和滑动
  • ¥15 生物医学数据分析。基础课程就v经常唱课程舅成牛逼
  • ¥15 云环境云开发云函数对接微信商户中的分账功能
  • ¥15 空间转录组CRAD遇到问题
  • ¥20 materialstudio计算氢键脚本问题