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 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python