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 基于PLC的三轴机械手程序
  • ¥15 多址通信方式的抗噪声性能和系统容量对比
  • ¥15 winform的chart曲线生成时有凸起
  • ¥15 msix packaging tool打包问题
  • ¥15 finalshell节点的搭建代码和那个端口代码教程
  • ¥15 Centos / PETSc / PETGEM
  • ¥15 centos7.9 IPv6端口telnet和端口监控问题
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 海浪数据 南海地区海况数据,波浪数据