从零学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之传说中的函数编写条规
Oct 11 Python
详解JavaScript编程中的window与window.screen对象
Oct 26 Python
Python的装饰器使用详解
Jun 26 Python
python机器学习理论与实战(二)决策树
Jan 19 Python
python使用TensorFlow进行图像处理的方法
Feb 28 Python
Python使用pyh生成HTML文档的方法示例
Mar 10 Python
用Python配平化学方程式的方法
Jul 20 Python
python基于K-means聚类算法的图像分割
Oct 30 Python
Python中 Global和Nonlocal的用法详解
Jan 20 Python
在Python中用GDAL实现矢量对栅格的切割实例
Mar 11 Python
python里反向传播算法详解
Nov 22 Python
Python 利用flask搭建一个共享服务器的步骤
Dec 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文件读写操作之文件写入代码
2011/01/13 PHP
laravel 解决crontab不执行的问题
2019/10/22 PHP
JavaScript字符串对象toUpperCase方法入门实例(用于把字母转换为大写)
2014/10/17 Javascript
js关于命名空间的函数实例
2015/02/05 Javascript
javascript实现移动端上的触屏拖拽功能
2016/03/04 Javascript
BootStrap智能表单实战系列(九)表单图片上传的支持
2016/06/13 Javascript
JS简单随机数生成方法
2016/09/05 Javascript
Vue.js实现一个todo-list的上移下移删除功能
2017/06/26 Javascript
jQuery实现手机号正则验证输入及自动填充空格功能
2018/01/02 jQuery
JavaScript折半查找(二分查找)算法原理与实现方法示例
2018/08/06 Javascript
jQuery选择器选中最后一个元素,倒数第二个元素操作示例
2018/12/10 jQuery
vue防止花括号{{}}闪烁v-text和v-html、v-cloak用法示例
2019/03/13 Javascript
Vue Cli 3项目使用融云IM实现聊天功能的方法
2019/04/19 Javascript
ES6学习笔记之let与const用法实例分析
2020/01/22 Javascript
[05:29]2014DOTA2国际邀请赛 赛后专访:LGDNewbee顺利过关
2014/07/13 DOTA
[00:38]TI珍贵瞬间系列(二):笑
2020/08/26 DOTA
Python修改Excel数据的实例代码
2013/11/01 Python
python算法学习之计数排序实例
2013/12/18 Python
python实现mysql的读写分离及负载均衡
2018/02/04 Python
python3.4控制用户输入与输出的方法
2018/10/17 Python
Python3.5文件读与写操作经典实例详解
2019/05/01 Python
Python彻底删除文件夹及其子文件方式
2019/12/23 Python
html5 canvas的绘制文本自动换行的示例代码
2018/09/17 HTML / CSS
浅析canvas元素的html尺寸和css尺寸对元素视觉的影响
2019/07/22 HTML / CSS
Kathmandu澳洲户外商店:新西兰户外运动品牌
2017/11/12 全球购物
荷兰鞋子在线:Nelson Schoenen
2017/12/25 全球购物
菲律宾优惠券网站:MetroDeal
2019/04/12 全球购物
美国艺术和工艺品商店:Hobby Lobby
2020/12/09 全球购物
同学聚会老师邀请函
2014/01/28 职场文书
大学秋游活动方案
2014/02/11 职场文书
计算机应用应届生求职信
2014/07/12 职场文书
党的群众路线教育实践活动个人剖析材料
2014/10/07 职场文书
音乐教师个人总结
2015/02/06 职场文书
高考诚信考试承诺书
2015/04/29 职场文书
主婚人致辞精选
2015/07/28 职场文书
Golang的继承模拟实例
2021/06/30 Golang