coconut11. 2022-02-07 19:39 采纳率: 100%
浏览 89
已结题

txt读写完后分数的分割变成\t还改不掉?

任务描述:给定成绩score.txt文件,综合利用所学知识,实现如下功能:
操作流程:
1.导入score.txt ,循环读取数据行,生成成绩字典
#d={'班有荣': {'语文': 60, '数学': 65, '英语': 30, '物理': 45, '政治': 56, '历史': 60},...}
2.构建成绩查询函数
def qureyscore(name):
#根据姓名查询成绩详细信息
#d[name]
3.构建总成绩名次查询函数
def rank(name):
#计算每个学生的总成绩
#根据姓名查询名次(按总成绩)
4.在以上函数基础上构建单科排名
#单科排名
4.自动生成成绩分析报告
def report_branch(name):
#根据当前学生的各科排名及总排名,生成总体优良信息(排名在前1/3认定为“优”,排名在2/3认定为“良”,排名在后1/3认定为“差”).
#偏科信息并针对偏科信息给出报告(认定为“优”的科目仅1门为“严重偏科”,认定为“优”的科目有2门认定为“偏科”)。
5.生成7选3建议报告
def report_select(name ):
#根据当前学生的各科排名情况,取排名最好的三门课程作为选科建议输出,若有并列科目排名,输出所有组合情况。
这个是我的代码

fr=open('score.txt','r')
dic={}
for line in fr:
    value=line.strip().split('/r')
    for i in range(53):
        for j in range(30):
            dic['value[i]']=value[j]
print(dic)
fr.close()
dic1={}
s={}
for i in range(53):
    for j in range(40):
        #s=dic[i]
        print(s)
        #dic1[i].append(s)
print(dic1)




图片

img


序号    姓名    生物    地理    技术    物理    化学    政治    历史
1    班有荣    60    65    30    45    56    60    59
2    陈宏    52    60    37    47    42    71    58
3    陈洪兵    72    70    34    56    34    79    56
4    陈洪艳    81    25    36    67    45    80    47
5    陈灵琳    80    71    62    72    43    89    72
6    邓华义    82    34    42    23    55    90    45
7    邓亮    72    35    45    48    57    92    56
8    邓清龙    34    46    48    59    53    48    51
9    封兴菊    81    32    60    63    41    56    32
10    顾富豪    80    47    61    78    43    67    79
11    何思勇    88    58    72    42    36    61    81
12    何永刚    87    49    54    36    27    36    34
13    胡伟    79    81    67    66    23    83    79
14    黄洋    73    83    71    72    34    93    78
15    黄子芹    64    79    69    30    46    32    71
16    江均璘    66    80    28    45    28    41    63
17    姜宇    67    72    38    14    71    46    57
18    蒋明佯    54    84    45    27    70    48    42
19    蒋羽    47    30    67    34    38    52    38
20    况娜    23    45    78    68    47    53    36
21    黎应莲    46    26    51    79    25    35    34
22    李焕然    67    70    61    21    67    42    33
23    李美霖    90    82    87    83    86    90    81
24    李智慧    42    27    32    45    29    46    56
25    刘磊    35    83    45    67    87    57    67
26    刘帅    67    66    47    22    80    60    65
27    龙绽辉    78    47    58    18    47    61    62
28    罗飞    62    28    61    47    35    68    34
29    潘丹丹    85    92    88    80    76    91    88
30    谭辉    87    90    78    85    89    90    86
31    谭明娇    42    39    77    44    28    79    81
32    唐丽    34    45    26    46    43    72    62
33    唐念    25    67    41    37    51    63    56
34    王景锋    60    72    35    40    25    89    73
35    王婷    51    42    37    78    39    60    73
36    吴忌    43    37    24    48    24    51    34
37    吴秦邮    31    45    33    61    57    72    47
38    徐民    72    43    52    55    63    26    73
39    杨成    38    13    63    37    21    68    52
40    杨家佳    40    71    67    71    68    81    79
41    杨杰    71    83    80    50    71    70    62
42    袁伟烈    80    81    53    67    60    87    88
43    袁野    36    42    34    56    47    32    39
44    张金会    78    45    26    28    31    78    69
45    张银    38    20    48    35    19    61    34
46    周磊    78    23    56    43    23    57    61
47    李洪浩    81    31    79    51    46    63    78
48    李南    86    81    80    39    54    72    36
49    刘习美    72    24    32    18    35    79    58
50    罗毅    80    35    63    37    27    44    47
51    唐明玉    73    46    64    44    79    25    28
52    李悦英    60    72    68    51    83    76    69
53    何国涛    61    43    71    35    34    81    70

  • 写回答

3条回答 默认 最新

  • 关注

    你score.txt文件的格式是什么?

    value=line.strip().split('/r') 应该是\t或者空格 , 不是/r
    改成
    value=line.strip().split('\t')

    比如你score.txt文件的格式是

    序号    姓名    语文    数学    英语
    001    王某某    77    66    88
    002    李某某    87    68    75
    

    代码是

    fr=open('score.txt','r',encoding='utf-8')
    dic={}
    ha=fr.readline().strip().split('\t')
    for line in fr:
        value=line.strip().split('\t')
        sd = {}
        for j in range(2,len(value)):
            sd[ha[j]]=value[j]
        dic[value[1]]=sd
    print(dic)
    fr.close()
    

    结果

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 2月15日
  • 已采纳回答 2月7日
  • 修改了问题 2月7日
  • 修改了问题 2月7日
  • 展开全部

悬赏问题

  • ¥15 PointNet++的onnx模型只能使用一次
  • ¥20 西南科技大学数字信号处理
  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥15 R语言绘制密度图,一个密度曲线内fill不同颜色如何实现
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧,别用大模型回答,大模型的答案没啥用
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。