从零学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中mechanize库的简单使用示例
Jan 10 Python
python使用cookielib库示例分享
Mar 03 Python
python通过BF算法实现关键词匹配的方法
Mar 13 Python
解读Django框架中的低层次缓存API
Jul 24 Python
python机器学习理论与实战(一)K近邻法
Jan 28 Python
python3解析库lxml的安装与基本使用
Jun 27 Python
python使用numpy读取、保存txt数据的实例
Oct 14 Python
Python实现SQL注入检测插件实例代码
Feb 02 Python
python字符串反转的四种方法详解
Dec 02 Python
Python : turtle色彩控制实例详解
Jan 19 Python
PyChon中关于Jekins的详细安装(推荐)
Dec 28 Python
python使用pycharm安装pyqt5以及相关配置
Apr 22 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单例模式实现方法分析
2015/03/14 PHP
如何在HTML 中嵌入 PHP 代码
2015/05/13 PHP
php 7新特性之类型申明详解
2017/06/06 PHP
laravel使用Faker数据填充的实现方法
2019/04/12 PHP
JavaScript 一行代码,轻松搞定浮动快捷留言-V2升级版
2010/04/02 Javascript
jQuery操作checkbox选择(list/table)
2013/04/07 Javascript
bootstrap datepicker插件默认英文修改为中文
2017/07/28 Javascript
vue项目实战总结篇
2018/02/11 Javascript
webpack配置proxyTable时pathRewrite无效的解决方法
2018/12/13 Javascript
详解javascript中的Error对象
2019/04/25 Javascript
nodejs中request库使用HTTPS代理的方法
2019/04/30 NodeJs
小程序实现层叠卡片滑动效果
2019/08/26 Javascript
JS计算斐波拉切代码实例
2019/09/12 Javascript
Vue + Node.js + MongoDB图片上传组件实现图片预览和删除功能详解
2020/04/29 Javascript
如何实现小程序与小程序之间的跳转
2020/11/04 Javascript
Vue基本指令实例图文讲解
2021/02/25 Vue.js
python中os操作文件及文件路径实例汇总
2015/01/15 Python
python批量制作雷达图的实现方法
2016/07/26 Python
python解析基于xml格式的日志文件
2017/02/25 Python
Django查询数据库的性能优化示例代码
2017/09/24 Python
Python结合ImageMagick实现多张图片合并为一个pdf文件的方法
2018/04/24 Python
python 实时得到cpu和内存的使用情况方法
2018/06/11 Python
python 实现求解字符串集的最长公共前缀方法
2018/07/20 Python
Python3中lambda表达式与函数式编程讲解
2019/01/14 Python
使用GitHub和Python实现持续部署的方法
2019/05/09 Python
PyQt5 实现给窗口设置背景图片的方法
2019/06/13 Python
HTML5 实现图片上传预处理功能
2020/02/06 HTML / CSS
C语言笔试集
2012/07/24 面试题
大学生就业求职信
2014/06/12 职场文书
国际贸易求职信
2014/07/05 职场文书
工资收入证明
2014/10/07 职场文书
事业单位考察材料范文
2014/12/25 职场文书
硕士毕业答辩开场白
2015/05/27 职场文书
企业财务管理制度范本
2015/08/04 职场文书
煤矿安全生产工作总结
2015/08/13 职场文书
tensorflow+k-means聚类简单实现猫狗图像分类的方法
2021/04/28 Python