从零学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 相关文章推荐
在RedHat系Linux上部署Python的Celery框架的教程
Apr 07 Python
python开发之list操作实例分析
Feb 22 Python
Python 使用requests模块发送GET和POST请求的实现代码
Sep 21 Python
Python3网络爬虫之使用User Agent和代理IP隐藏身份
Nov 23 Python
Python与人工神经网络:使用神经网络识别手写图像介绍
Dec 19 Python
一个月入门Python爬虫学习,轻松爬取大规模数据
Jan 03 Python
Python实现的简单读写csv文件操作示例
Jul 12 Python
Python字典中的键映射多个值的方法(列表或者集合)
Oct 17 Python
python模块导入的方法
Oct 24 Python
Python中断多重循环的几种方式详解
Feb 10 Python
OpenCV 使用imread()函数读取图片的六种正确姿势
Jul 09 Python
python UIAutomator2使用超详细教程
Feb 19 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环境搭建最新方法
2006/09/05 PHP
PHP的分页功能
2007/03/21 PHP
php防止伪造数据从地址栏URL提交的方法
2014/08/24 PHP
php输入流php://input使用浅析
2014/09/02 PHP
PHP批量查询WordPress留言者E-mail地址实现方法
2015/02/15 PHP
Yii2――使用数据库操作汇总(增删查改、事务)
2016/12/19 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
JavaScript QueryString解析类代码
2010/01/17 Javascript
jQuery中与toggleClass等价的程序段 以及未来学习的方向
2010/03/18 Javascript
js拼接html注意问题示例探讨
2014/07/14 Javascript
jQuery中:gt选择器用法实例
2014/12/29 Javascript
jQuery制作简单柱状图实例
2015/01/28 Javascript
使用jQuery实现更改默认alert框体
2015/04/13 Javascript
JQuery控制radio选中和不选中方法总结
2015/04/15 Javascript
js验证框架实现代码分享
2016/05/18 Javascript
漫谈JS引擎的运行机制 你应该知道什么
2016/06/15 Javascript
jQuery 3.0十大新特性最终版发布
2016/07/14 Javascript
浅谈js原生拖放
2016/11/21 Javascript
关于Angular2 + node接口调试的解决方案
2017/05/28 Javascript
对vue里函数的调用顺序介绍
2018/03/17 Javascript
vue 不使用select实现下拉框功能(推荐)
2018/05/17 Javascript
微信公众号开发之微信支付代码记录的实现
2019/10/16 Javascript
node.js使用http模块创建服务器和客户端完整示例
2020/02/10 Javascript
vue项目实现多语言切换的思路
2020/09/17 Javascript
[01:05:56]2018DOTA2亚洲邀请赛3月29日 小组赛A组 Newbee VS VG
2018/03/30 DOTA
Python爬虫辅助利器PyQuery模块的安装使用攻略
2016/04/24 Python
python中日志logging模块的性能及多进程详解
2017/07/18 Python
python中format()函数的简单使用教程
2018/03/14 Python
在 Linux/Mac 下为Python函数添加超时时间的方法
2020/02/20 Python
html5中的input新属性range使用记录
2014/09/05 HTML / CSS
歌颂祖国演讲稿
2014/05/04 职场文书
志愿者活动总结报告
2014/06/27 职场文书
学校教师读书活动总结
2014/07/08 职场文书
民主评议党员登记表自我评价
2014/10/20 职场文书
虎兄虎弟观后感
2015/06/12 职场文书
Mysql数据库group by原理详解
2022/07/07 MySQL