要求:分别以james,julie,mikey,sarah四个学生的名字建立文本文件,分别存储各自的成绩,时间格式都精确为分秒,时间越短成绩越好,分别输出每个学生的无重复的前三个最好成绩,且分秒的分隔符要统一为“.”

数据准备:分别建立四个文本文件

james.txt 2-34,3:21,2.34,2.45,3.01,2:01,2:01,3:10,2-22

julie.txt 2.59,2.11,2:11,2:23,3-10,2-23,3:10,3.21,3-21

mikey.txt 2:22,3.01,3:01,3.02,3:02,3.02,3:22,2.49,2:38

sarah.txt 2:58,2.58,2:39,2-25,2-55,2:54,2.18,2:55,2:55

代码实现:

import os

os.chdir('C:\Python33\HeadFirstPython\hfpy_code\chapter5') #将工作空间修改为文件所在的目录

#定义函数get_filedata从文件中取值

def get_filedata(filename):

try:

with open(filename) as f: #with语句打开和自动关闭文件

data=f.readline() #从文件中逐行读取字符

return (data.strip().split(',')) #将字符间的空格清除后,用逗号分隔字符

except IOError as ioerr:

print ('File Error' + str(ioerr)) #异常处理,打印错误

return (None)

#定义函数modify_time_format将所有文件中的时分表达方式统一为“分.秒”

def modify_time_format(time_string):

if "-" in time_string:

splitter="-"

elif ":" in time_string:

splitter=":"

else:

splitter="."

(mins, secs)=time_string.split(splitter) #用分隔符splitter分隔字符后分别存入mins和secs

return (mins+ '.' +secs)

#定义函数get_prev_three返回文件中排名前三的不重复的时间成绩

def get_prev_three(filename):

new_list=[modify_time_format(each_t) for each_t in get_filedata(filename)] #采用列表推导将统一时分表达方式后的记录生成新的列表

delete_repetition=set(new_list) #采用集合set函数删除新列表中重复项,并生成新的集合

in_order=sorted(delete_repetition) #采用复制排序sorted函数对无重复性的新集合进行排序

return (in_order[0:3]) #返回列表前三项

# 分别输出对应文件中排名前三的不重复的时间成绩

print (get_prev_three("james.txt"))

print (get_prev_three("julie.txt"))

print (get_prev_three("mikey.txt"))

print (get_prev_three("sarah.txt"))

输出结果:

['2.01', '2.22', '2.34']

['2.11', '2.23', '2.59']

['2.22', '2.38', '2.49']

['2.18', '2.25', '2.39']

python脚本编程实例_从零学python系列之数据处理编程实例(一)相关推荐

  1. python编程基础_月隐学python第2课

    python编程基础_月隐学python第2课 学习目标 掌握变量的输入和输出 掌握数据类型的基本概念 掌握算数运算 1.变量的输入和输出 1.1 变量输入 使用input输入 input用于输入数据 ...

  2. python移动图形编程_从零学python——python的基本图形绘制以及基本语法

    1.使用python语言编程绘制一条蟒蛇. 设计到的问题:python如何构造一个窗体,在上面绘制图案? 如何编程绘制图案? 以简单的蟒蛇图案为例子:如图 代码如下: 进行代码的分析: 1)保留字im ...

  3. 趣学python编程答案_《趣学Python编程》习题总结

    上周买了本书叫<趣学Python编程>(英文名:Python for kids),昨天看完后把书后面的题都做了下.由于第1.2章没有习题,第13章及之后都是描写实例的章节,因此这个总结性的 ...

  4. 趣学python编程下载_《趣学Python编程》——1.2 安装Python

    本节书摘来自异步社区<趣学Python编程>一书中的第1章,第1.2节,作者[美]Jason Briggs,尹哲 译,更多章节内容可以访问云栖社区"异步社区"公众号查看 ...

  5. python编程基础_月隐学python第一课

    1.概述 本文是用于描述本人学习python的过程,这是第1课情况. 2.学习目标 了解python基础知识 理解程序和程序翻译的两种形式 掌握使用pycham编程基本步骤 重点掌握变量定义 掌握数据 ...

  6. python中数据读写_【循序渐进学Python——文件中数据的读写以及操作】

    [循序渐进学Python--文件中数据的读写以及操作] [循序渐进学Python--文件中数据的读写以及操作] [循序渐进学Python--文件中数据的读写以及操作] 相信大家都想过自己有一天,可以用 ...

  7. python脚本的编写_记一次python脚本的编写过程

    糖豆贴心提醒,本文阅读时间6分钟 因工作需求要写一个python脚本,来测试memcache服务器. 因为第一次写python脚本在线上运行,所以不敢大意.而又因为我自己看着python教程自学了一点 ...

  8. python处在哪个阶段_如何在学Python的过程中更好地成长技术

    Python是一门编程语言,所以重点在于如何用好这门语言,只有能够做好项目,才能证明自己逐步掌握好了这门语言.在学习阶段,最终的目标是要尝试着自己用Python搭建一个网站,也算是对自己学习成果的一种 ...

  9. python新手怎么入门_新手怎么学Python?Python入门必看!

    原标题:新手怎么学Python?Python入门必看! 作为新手,学习一门编程语言无疑是一头雾水,上海尚观科技为了让大家在学习Python编程的时候,有一个学习方向,在这里给大家分享了的方法,希望能帮 ...

最新文章

  1. 在CentOS 6.3 64bit上安装ActiveMQ 5.15.9实录
  2. JAVA 对象引用,以及对象赋值
  3. Mybatis源码解析之Mybatis初始化过程
  4. C语言指针作为参数的传递问题
  5. Oracle EBS:追踪PO全过程
  6. 发布到服务器接口404_新版本永雾林渊周五来袭,404战队真的404了
  7. 如何调试Python extension
  8. 推荐一个卡巴斯基绿色版本
  9. 服务器怎么支持smtp,如何搭建邮箱服务器,自建smtp服务器
  10. 大数据项目实时数据采集流程步骤分析
  11. word 文档规范,比如标题、正文的字号
  12. 解决Win10强制更新的工具:show or hide updates
  13. Can‘t Update No tracked branch configured for branch
  14. win7映射网络驱动器消失了_win7映射网络驱动器 找不到 - 卡饭网
  15. ehcache 缓存丢失_解决Ehcache缓存警告问题
  16. HALCON联合C#检测表面缺陷——显示实时灰度值以及灰度值的用处
  17. 对输入的两个分数选择‘+’、‘-’、‘*’、‘/’四则运算,并以分数形式输出结果。输入:第一行先输入整数T,表示总共有T组数据。接下来共T行,每行输入分数形式的算术表达式。 输出:最简分数形
  18. DW1000 datasheet FUNCTIONAL DESCRIPTION
  19. 计算机奖学金用英语怎么说,奖学金证书的翻译,三好学生荣誉证书,优秀学生干部荣誉证书的英语,英语四、六级和计算机证书,辅修证书的英语怎么说, 教学实践单项奖,社会实践单项奖用英语怎么说...
  20. 盛世昊通全新升级,引领智慧新经济

热门文章

  1. 爬虫必须学会的正则表达式
  2. 知识图谱论文阅读【十二】【KDD2020】 使用贝叶斯图卷积神经网络推荐精确和多样化项目的框架【看不懂,待续】
  3. 你的 GNN,可能 99% 的参数都是冗余的
  4. 阿里P8架构师谈:数据库、JVM、缓存、SQL等性能调优方法和原则
  5. Transformer and set Trasformer
  6. 论文学习2-Incorporating Graph Attention Mechanism into Knowledge Graph Reasoning Based on Deep Reinforce
  7. jar包部署到window系统服务器的办法
  8. Spring体系常用方法(一)
  9. Pycharm简单配置及详细快捷键介绍
  10. Oracle 通过字段名查询其所在的表