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 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测