奖学金评选-1

题目一:
概述:

'''
某班学生评选一等奖学金,学生的10[主干课成绩存在考生文件夹下文件score. txt中,每行为一个学
生的信息,分别记录了学生学号、姓名以及10门课成绩,格式如下:
1820161043 郑珉镐 68 66 83 77 56 73 61 69 66 78
1820161044 沈红伟 91 70 81 91 96 80 78 91 89 94
从这些学生中选出奖学金候选人,条件是: 1) 总成绩排名在前10名; 2) 全部课程及格(成绩大于等于60)。
问题1:给出按总成绩从高到低排序的前10名学生名单,并写入文件candi date0. txt,每行记录- -个学生的信
息,分别为学生学号、姓名以及101 ]课成绩。补充考生文件夹下文件PY301-1. py,完成这一功能。
'''

思路:

  1. 文件操作
'''score.txt文件和代码在一起'''
# 打开文件
fp = open(r'score.txt')
# 准备写入文件
fw = open(r'candidate0.txt', 'w')
  1. 定义一个列表L来存储处理好的数据
# L中的元素是学生原始成绩和总成绩
L = []
  1. 通过循环处理读取的每一条数据
# 循环处理
for score in fp:# 列表L中添加的是 ['1820161043', '郑珉镐', '68', '66', '83', '77', '56', '73', '61', '69', '66', '78']L.append(score.replace('\n', '').split(' '))
# 循环处理文件之后, 列表L中的内容为:
'''
[['1820161043', '郑珉镐', '68', '66', '83', '77', '56', '73', '61', '69', '66', '78'],
['1820161044', '沈红伟', '91', '70', '81', '91', '96', '80', '78', '91', '89', '94'],
......
['1320170211', '汪清爽', '75', '85', '57', '62', '77', '91', '89', '64', '79', '66']]
'''
  1. 对已经处理的数据进行加工
for i in L:# 截取个人的信息,只保留成绩部分  ['75', '85', '57', '62', '77', '91', '89', '64', '79', '66']tmp = i[2:]# 成绩求和s = 0for j in tmp:s += int(j)# 将总成绩 添加回 i 中为接下来排序做准备i.append(s)'''i 中的内容 因为 i是L中的元素 所以修改了i L中相对应的元素也会修改['1820161043', '郑珉镐', '68', '66', '83', '77', '56', '73', '61', '69', '66', '78', 697]'''
  1. 将列表排序
# 按照每个列表中的总成绩排序 降序
L.sort(key=lambda x: x[-1], reverse=True)  # 按学生总成绩从大到小排序
print(L)
'''
['1120161858', '房正康', '95', '96', '93', '54', '93', '100', '84', '97', '94', '87', 893],
'''
  1. 输出结果
# 将前10名写入文件  candidate0.txt
for i in range(10):# 拼接写入tmp = ''# 除去总成绩 即为原始数据for j in L[i][:-1]:tmp += j + ' '# 去掉末尾的空格并 添加一个换行符fw.write(tmp[:-1] + '\n')
  1. 释放资源
# 关闭文件 释放资源
fw.close()
fp.close()

**总结**:
使用列表可以灵活的处理多维的数据(此题数据为二维),灵活应用字符串的分割与拼接可以使题目更简单
代码如下:

# 打开文件
fp = open(r'score.txt')
# 准备写入文件
fw = open(r'candidate0.txt', 'w')# L中的元素是学生原始成绩和总成绩
L = []
# 循环处理
for score in fp:# 列表L中添加的是 ['1820161043', '郑珉镐', '68', '66', '83', '77', '56', '73', '61', '69', '66', '78']L.append(score.replace('\n', '').split(' '))# 循环处理文件之后, 列表L中的内容为:
'''
[['1820161043', '郑珉镐', '68', '66', '83', '77', '56', '73', '61', '69', '66', '78'],
['1820161044', '沈红伟', '91', '70', '81', '91', '96', '80', '78', '91', '89', '94'],
......
['1320170211', '汪清爽', '75', '85', '57', '62', '77', '91', '89', '64', '79', '66']]
'''
# 对已经处理的数据进行加工
for i in L:# 截取个人的信息,只保留成绩部分  ['75', '85', '57', '62', '77', '91', '89', '64', '79', '66']tmp = i[2:]# 成绩求和s = 0for j in tmp:s += int(j)# 将总成绩 添加回 i 中为接下来排序做准备i.append(s)'''i 中的内容 因为 i是L中的元素 所以修改了i L中相对应的元素也会修改['1820161043', '郑珉镐', '68', '66', '83', '77', '56', '73', '61', '69', '66', '78', 697]'''
# 按照每个列表中的总成绩排序 降序
L.sort(key=lambda x: x[-1], reverse=True)  # 按学生总成绩从大到小排序
print(L)
'''
['1120161858', '房正康', '95', '96', '93', '54', '93', '100', '84', '97', '94', '87', 893],
'''
# 将前10名写入文件  candidate0.txt
for i in range(10):# 拼接写入tmp = ''# 除去总成绩 即为原始数据for j in L[i][:-1]:tmp += j + ' '# 去掉末尾的空格并 添加一个换行符fw.write(tmp[:-1] + '\n')# 关闭文件 释放资源
fw.close()
fp.close()

相关代码和资源都会打包到下面的链接(另附一个份刷题笔记):

代码(直接用Python导入即可),软件,题库:
链接:https://pan.baidu.com/s/1WClgPe1D79_GKclR26LJdA
提取码:pjmm

Python二级--奖学金评选相关推荐

  1. Python二级--奖学金评选2

    奖学金评选-2 题目一: 概述: ''' 问题2:读取文件candi date0. txt, 从中选出候选人,并将学号和姓名写入文件candi date. txt,格式如下: 101011216172 ...

  2. python二级第七套答案

    python二级第七套答案 46.某班学生评选一等奖学金,学生的10门主干课成绩存在考生文件夹下文件score.txt中,每行为一个学生的信息,分别记录了学生学号.姓名以及10门课成绩,格式如下: 1 ...

  3. python考级证书-python二级证书有用吗

    计算机Python二级证书到底有什么用?综合来看有6个好处. 1.满足竞争需求 在大学扩招.大学生贬值.经济下行.就业困难的多重压力之下,大学生越来越难独善其身,竞争压力越来越大,就拿计算机考证人数来 ...

  4. 全国计算机等级考试Python二级知识点_1

    ❤关注我,不迷路❤ 点击进入完整的Python专栏 全国计算机等级考试Python二级知识点整合_1 知识点模块 具体内容 备注 安装 下载地址:www.python.org/downloads 协议 ...

  5. 计算机等级考试Python二级

    文章目录 1.算法杂度 1.1算法的特性 1.2算法的基本要素 1.3.1算法的控制结构 1.3.2时间和空间复杂度 2.数据结构基本概念 2.1数据结构的表示 2.2线性表的顺序存储结构 2.3线性 ...

  6. python二级题库 第四套

    刷题软件(模拟python二级考试) 操作题刷题软件 公众h:露露IT 回复:python二级 一.选择题 1. 可以作为软件测试对象的是(). A. 需求规格说明 B. 源程序 C. 设计规格说明 ...

  7. python二级题库 第四套 附刷题软件

    刷 题软件(模拟python二级考试) 操作题刷题软件 公众h:露露IT 回复:python二级 一.选择题 1. 描述数据库系统中全局数据逻辑结构.且为全体用户公共数据视图的是(). A. 概念模式 ...

  8. 江苏省计算机Python二级考试 总结

    我考的是2019年3月份,江苏省Python二级考试.关于此次的总结,主要关于如何复习Python,试题回忆,考后反思三个方面. 一.Python复习步骤 1.1准备一本Python语言二级考试书籍, ...

  9. 杭电计算机学院2019年奖学金,关于计算机学院2019-2020学年国家励志奖学金评选的通知...

    原标题:关于计算机学院2019-2020学年国家励志奖学金评选的通知 关于计算机学院2019-2020学年国家励志奖学金评选的通知 各年级专业: 为激励我校家庭经济困难在校学生勤奋学习.努力进取,在德 ...

最新文章

  1. 做项目时如何快速提高团队协作能力?
  2. Android EventBus 的使用
  3. 为什么B+树比B树更适合做数据库索引
  4. 在ASP.NET MVC3项目中,自定义404错误页面
  5. java8 策略模式_Java 8中的策略模式
  6. java集合清空_java 集合删除数据
  7. Python获取sklearn库中iris数据写入本地csv文件,可视化展示数据并进行分类、聚类实验以及结果可视化
  8. Ghost命令使用方法
  9. Differential Geometry之第十章极小曲面
  10. 全国行政区划代码(json对象)---包含键值对的城市代号和城市名称的json对象代码(不包括县级市)
  11. Ringtone 循环播放铃声
  12. 二分专项训练(二分搜索+二分答案的十贰道例题及解析
  13. 关于上传文件的报错问题
  14. python统计一组数据中的概率_Python实现概率分布
  15. 计算机网络人工智能论文,浅析计算机网络中人工智能的应用论文
  16. 自己做游戏(一)-PhotonServer配置
  17. 分享一款电机控制国产32位单片机MM32SPIN360C
  18. vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据
  19. Java 获取访问者的IP地址
  20. python中斜杠加引号什么意思_如何在Python中转义反斜杠和单引号或双引号?

热门文章

  1. DC初级摄友必学摄影技巧
  2. 从实际性能剖析,为什么MEMS激光雷达才是未来主流?
  3. 滚动截屏苹果_电脑手机技巧:苹果手机滚动截屏最优解
  4. 牛一网ecshop家电数码模板(仿易迅网)for ecshop 2.7.3
  5. 计算机图形学-颜色科学基础
  6. av_rescale_q_rnd”: 不能将参数 4 从“int”转换为“AVRounding” 1 转换为枚举
  7. google搜索---搜索指定网页的内容
  8. jQuery幻灯片带缩略图平移滑动焦点图
  9. 北理计算机学院2005年机试真题
  10. Android控件外边框自定义