Python 字典与集合的综合经典例题:输入学生的学号,姓名;或者输入学号,科目,成绩。以输入一行END为输入结束标志。最后格式化输出 您所在的位置:网站首页 python键盘输入元组 Python 字典与集合的综合经典例题:输入学生的学号,姓名;或者输入学号,科目,成绩。以输入一行END为输入结束标志。最后格式化输出

Python 字典与集合的综合经典例题:输入学生的学号,姓名;或者输入学号,科目,成绩。以输入一行END为输入结束标志。最后格式化输出

2023-08-25 07:44| 来源: 网络整理| 查看: 265

Python 字典与集合的综合经典例题:输入学生的学号,姓名;或者输入学号,科目,成绩。以输入一行END为输入结束标志。最后格式化输出

ps1:本人刚刚学python是个小白本白…肯定有n多错误 ,only记录一下啦提升自己的sense of fullfillment! 为继续学习提供动力!!…

ps2:是跟着MOOC翁凯老师的视频学的,老师讲了思路自己试着敲了代码(because我没书找不到书上的示例…)附上视频链接,是第五章的5.3小节。主要是理解Python的字典。附上链接~

https://www.icourse163.org/learn/ZJU-1206456840?tid=1450395457#/learn/content?type=detail&id=1214738094&cid=1218696341

dictNumName = {}##存放第一种类型的输入:有学号,姓名。存放格式例如{"10":'张三','11':......} dictNumScores = {}##存放第二种类型的输入:有学号,科目,成绩。 ##存放格式例如{'10':{'高数':80,'英语':85},'11'......} courseName = set()##因为最后要在第一行输出表头,所以用一个集合,之后往里面添加时,就算有重复的科目也可以帮我们自动排重 while True: s = input() if s=='END':##以END 为结束标志 break else: line = s.split(' ')##line是列表,里面有两个或者三个元素 if len(line)==2:##line里面只有学号,姓名 ##["10",'张三'],并且一个学号姓名只可能出现一次 dictNumName[line[0]] = line[1] else:##line里面是学号,一个选课,和其对应的成绩 ##['10','高数',90],学号可能会多次出现,学生选修多门课 if line[0] in dictNumScores:##这个line[0]学号之前已经出现过了 d = dictNumScores.get(line[0])##所以dictNumScores在这个字典里已经有这个键,所以直接用d接一下返回的字典就可以了 ##现在d = {xx:xx},有内容 d[line[1]] = int(line[2])## else: d = {}##这个学号第一次出现,令d是一个新的空的字典 dictNumScores[line[0]] = d##把line[0]作为键直接给dictNumScores,把d这个字典作为line[0]这个键的value。 d[line[1]] = int(line[2])##给d赋新建一个键(科目名称)和值(该科目分数) courseName.add(line[1])##每次处理一个成绩,把科目名称加到集合里面 ##输出 print('学号 姓名 ',end = '') for item in courseName: print(item,end = ' ') print() for key,value in dictNumScores.items():##{'19401050110':{'高数':80,'英语':85},'19401050111'......} ##按照key一个一个来,现在的key是'19401050110',value是{'高数':80,'英语':85} print(key+' '+dictNumName[key]+' '+str(value['高数'])+' '+str(value['英语'])) ##

下面附上我的测试示例 在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有