从零学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制作获取网站目录的图形化程序
May 04 Python
Python中subprocess的简单使用示例
Jul 28 Python
Python输出汉字字库及将文字转换为图片的方法
Jun 04 Python
python自动登录12306并自动点击验证码完成登录的实现源代码
Apr 25 Python
Python Django Vue 项目创建过程详解
Jul 29 Python
opencv+python实现均值滤波
Feb 19 Python
Django 实现将图片转为Base64,然后使用json传输
Mar 27 Python
容易被忽略的Python内置类型
Sep 03 Python
python 装饰器的使用示例
Oct 10 Python
python 实现端口扫描工具
Dec 18 Python
python实现腾讯滑块验证码识别
Apr 27 Python
python实现自定义日志的具体方法
May 28 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 递归效率分析
2009/11/24 PHP
PHP写的加密函数,支持私人密钥(详细介绍)
2013/06/09 PHP
Zend Studio 实用快捷键一览表(精心整理)
2013/08/10 PHP
php脚本守护进程原理与实现方法详解
2017/07/20 PHP
BOOM vs RR BO5 第二场 2.14
2021/03/10 DOTA
纯js分页代码(简洁实用)
2013/11/05 Javascript
jqueyr判断checkbox组的选中(示例代码)
2013/11/08 Javascript
js实现的点击数量加一可操作数据库
2014/05/09 Javascript
js实现点击后将文字或图片复制到剪贴板的方法
2014/08/04 Javascript
基于jquery步骤进度条源码分享
2015/11/12 Javascript
模拟javascript中的sort排序(简单实例)
2016/08/17 Javascript
XMLHttpRequest对象_Ajax异步请求重点(推荐)
2017/09/28 Javascript
iView-admin 动态路由问题的解决方法
2018/10/03 Javascript
Vue学习之常用指令实例详解
2020/01/06 Javascript
Python中实现结构相似的函数调用方法
2015/03/10 Python
python实现串口自动触发工作的示例
2019/07/02 Python
Python 中list ,set,dict的大规模查找效率对比详解
2019/10/11 Python
利用Python绘制有趣的万圣节南瓜怪效果
2019/10/31 Python
Python变量及数据类型用法原理汇总
2020/08/06 Python
如何用tempfile库创建python进程中的临时文件
2021/01/28 Python
size?法国官网:英国伦敦的球鞋精品店
2020/03/15 全球购物
马来西亚在线健康商店:Medipal Malaysia
2020/04/13 全球购物
skyn ICELAND官网:冰岛成分天然护肤品
2020/08/24 全球购物
争论的故事教学反思
2014/02/06 职场文书
电子专业自荐信
2014/07/01 职场文书
2014年高中生自我评价范文
2014/09/26 职场文书
2014小学数学教研组工作总结
2014/12/06 职场文书
2014工程部年度工作总结
2014/12/17 职场文书
初中学生操行评语
2014/12/26 职场文书
小区保洁员岗位职责
2015/04/10 职场文书
2015年招生工作总结
2015/05/04 职场文书
oracle表分区的概念及操作
2021/04/24 Oracle
十大最强格斗系宝可梦,超梦X仅排第十,第二最重格斗礼仪
2022/03/18 日漫
Elasticsearch 聚合查询和排序
2022/04/19 Python
Python实战实现爬取天气数据并完成可视化分析详解
2022/06/16 Python
react中useState使用:如何实现在当前表格直接更改数据
2022/08/05 Javascript