从零学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常用的日期时间处理方法示例
Feb 08 Python
python中__slots__用法实例
Jun 04 Python
Python制作数据导入导出工具
Jul 31 Python
浅析Python中signal包的使用
Nov 13 Python
使用Python编写简单的画图板程序的示例教程
Dec 08 Python
深入解析Python中的线程同步方法
Jun 14 Python
Python生成随机数组的方法小结
Apr 15 Python
Flask框架WTForm表单用法示例
Jul 20 Python
python K近邻算法的kd树实现
Sep 06 Python
浅谈matplotlib.pyplot与axes的关系
Mar 06 Python
Django REST framwork的权限验证实例
Apr 02 Python
解决Pytorch修改预训练模型时遇到key不匹配的情况
Jun 05 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 全角转半角实现代码
2010/05/16 PHP
解析php取整的几种方式
2013/06/25 PHP
php float不四舍五入截取浮点型字符串方法总结
2013/10/28 PHP
PHP中文乱码解决方案
2015/03/05 PHP
php封装的验证码工具类完整实例
2016/10/19 PHP
Laravel框架控制器的request与response用法示例
2019/09/30 PHP
javascript的offset、client、scroll使用方法详解
2012/12/25 Javascript
jQuery怎么解析Json字符串(Json格式/Json对象)
2013/08/09 Javascript
在页面加载完成后通过jquery给多个span赋值
2014/05/21 Javascript
JQuery中上下文选择器实现方法
2015/05/18 Javascript
AngularJS基础 ng-copy 指令实例代码
2016/08/01 Javascript
Javascript实现图片懒加载插件的方法
2016/10/20 Javascript
Angular实现的内置过滤器orderBy排序与模糊查询功能示例
2017/12/29 Javascript
vue项目中引入vue-datepicker插件的详解
2019/05/14 Javascript
解决jquery validate 验证不通过后验证正确的信息仍残留在label上的方法
2019/08/27 jQuery
2019最新21个MySQL高频面试题介绍
2020/02/06 Javascript
[01:24]DOTA2上海特锦赛OG战队抵达 专车接机入驻总统套房
2016/02/23 DOTA
python使用心得之获得github代码库列表
2014/06/25 Python
使用Python脚本将绝对url替换为相对url的教程
2015/04/24 Python
Python中的map()函数和reduce()函数的用法
2015/04/27 Python
python图像处理之镜像实现方法
2015/05/30 Python
Python 实现简单的shell sed替换功能(实例讲解)
2017/09/29 Python
通过Python 获取Android设备信息的轻量级框架
2017/12/18 Python
[原创]Python入门教程2. 字符串基本操作【运算、格式化输出、常用函数】
2018/10/29 Python
对Python 除法负数取商的取整方式详解
2018/12/12 Python
在Pycharm中将pyinstaller加入External Tools的方法
2019/01/16 Python
利用Python校准本地时间的方法教程
2019/10/31 Python
Python3.7黑帽编程之病毒篇(基础篇)
2020/02/04 Python
L’Artisan Parfumeur官网:法国香水品牌
2020/08/11 全球购物
应用心理学专业求职信
2014/08/04 职场文书
学校做一个有道德的人活动方案
2014/08/23 职场文书
公路局群众路线教育实践活动第一阶段工作汇报
2014/10/25 职场文书
2014年小学工作总结
2014/11/26 职场文书
工程部文员岗位职责
2015/02/04 职场文书
公司员工奖惩制度
2015/08/04 职场文书
2016年学校党支部公开承诺书
2016/03/25 职场文书