从零学python系列之数据处理编程实例(一)


Posted in Python onMay 22, 2014

要求:分别以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 使用requests模块发送GET和POST请求的实现代码
Sep 21 Python
python使用Tkinter实现在线音乐播放器
Jan 30 Python
python简单商城购物车实例代码
Mar 15 Python
从django的中间件直接返回请求的方法
May 30 Python
python实现自动网页截图并裁剪图片
Jul 30 Python
在Django的View中使用asyncio的方法
Jul 12 Python
python在OpenCV里实现投影变换效果
Aug 30 Python
pandas中ix的使用详细讲解
Mar 09 Python
Python PIL库图片灰化处理
Apr 07 Python
python logging模块的使用
Sep 07 Python
快速一键生成Python爬虫请求头
Mar 04 Python
教你用python实现12306余票查询
Jun 30 Python
Python学习笔记_数据排序方法
May 22 #Python
从零学Python之hello world
May 21 #Python
Python开发实例分享bt种子爬虫程序和种子解析
May 21 #Python
从零学Python之引用和类属性的初步理解
May 15 #Python
python中xrange和range的区别
May 13 #Python
Python中os和shutil模块实用方法集锦
May 13 #Python
Python中的jquery PyQuery库使用小结
May 13 #Python
You might like
在php MYSQL中插入当前时间
2008/04/06 PHP
PHP获取昨天、今天及明天日期的方法
2016/02/03 PHP
Laravel学习教程之request validation的编写
2017/10/25 PHP
jquery select(列表)的操作(取值/赋值)
2009/08/06 Javascript
Jquery在IE7下无法使用 $.ajax解决方法
2009/11/11 Javascript
基于JQuery制作的产品广告效果
2010/12/08 Javascript
轻松创建nodejs服务器(6):作出响应
2014/12/18 NodeJs
JavaScript模拟实现继承的方法
2015/03/30 Javascript
jQuery基本过滤选择器用法示例
2016/09/09 Javascript
vue.js初学入门教程(1)
2016/11/03 Javascript
快速掌握jquery分页插件jqPaginator的使用方法
2017/08/09 jQuery
webpack之devtool详解
2018/02/10 Javascript
React Native使用fetch实现图片上传的示例代码
2018/03/07 Javascript
Vue中多个元素、组件的过渡及列表过渡的方法示例
2019/02/13 Javascript
微信小程序登录对接Django后端实现JWT方式验证登录详解
2019/07/29 Javascript
vue改变循环遍历后的数据实例
2019/11/07 Javascript
JS+html5实现异步上传图片显示上传文件进度条功能示例
2019/11/09 Javascript
vue data变量相互赋值后被实时同步的解决步骤
2020/08/05 Javascript
[05:39]2014DOTA2西雅图国际邀请赛 淘汰赛7月14日TOPPLAY
2014/07/14 DOTA
Python版的文曲星猜数字游戏代码
2013/09/02 Python
Windows下的Python 3.6.1的下载与安装图文详解(适合32位和64位)
2018/02/21 Python
python 用下标截取字符串的实例
2018/12/25 Python
Python+Selenium+phantomjs实现网页模拟登录和截图功能(windows环境)
2019/12/11 Python
使用pyinstaller逆向.pyc文件
2019/12/20 Python
python使用HTMLTestRunner导出饼图分析报告的方法
2019/12/30 Python
Pycharm在指定目录下生成文件和删除文件的实现
2020/12/28 Python
如何使用canvas绘制可移动网格的示例代码
2020/12/14 HTML / CSS
cosme官方海外旗舰店:日本最大化妆品和美容产品的综合口碑网站
2017/01/18 全球购物
Cinque网上商店:德国服装品牌
2019/03/17 全球购物
工厂会计员职责
2014/02/06 职场文书
摄影助理岗位职责
2014/02/07 职场文书
深入开展党的群众路线教育实践活动心得体会
2014/11/05 职场文书
幼儿园推普周活动总结
2015/05/07 职场文书
交通事故被告答辩状
2015/05/22 职场文书
nginx对http请求处理的各个阶段详析
2021/03/31 Servers
Nginx性能优化之Gzip压缩设置详解(最大程度提高页面打开速度)
2022/02/12 Servers