从零学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 sys模块sys.path使用方法示例
Dec 04 Python
python中使用enumerate函数遍历元素实例
Jun 16 Python
python re正则表达式模块(Regular Expression)
Jul 16 Python
Python HTTP客户端自定义Cookie实现实例
Apr 28 Python
python中模块的__all__属性详解
Oct 26 Python
python实现读Excel写入.txt的方法
Apr 29 Python
对Python中创建进程的两种方式以及进程池详解
Jan 14 Python
详解Python sys.argv使用方法
May 10 Python
python射线法判断一个点在图形区域内外
Jun 28 Python
解决pycharm 安装numpy失败的问题
Dec 05 Python
最新pycharm安装教程
Nov 18 Python
Python3利用openpyxl读写Excel文件的方法实例
Feb 03 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
模拟SQLSERVER的两个函数:dateadd(),datediff()
2006/10/09 PHP
在Laravel 的 Blade 模版中实现定义变量
2019/10/14 PHP
IE6下opacity与JQuery的奇妙结合
2013/03/01 Javascript
解析js原生方法创建表格效率测试
2013/07/08 Javascript
异步加载JS、CSS代码(推荐)
2016/06/15 Javascript
jQuery UI制作选项卡(tabs)
2016/12/13 Javascript
Js中async/await的执行顺序详解
2017/09/22 Javascript
vue toggle做一个点击切换class(实例讲解)
2018/03/13 Javascript
element-ui组件table实现自定义筛选功能的示例代码
2019/03/15 Javascript
详解Vue源码中一些util函数
2019/04/24 Javascript
node实现简单的增删改查接口实例代码
2019/08/22 Javascript
JS实现点星星消除小游戏
2020/03/24 Javascript
使用Element的InfiniteScroll 无限滚动组件报错的解决
2020/07/27 Javascript
Webpack3+React16代码分割的实现
2021/03/03 Javascript
Djang中静态文件配置方法
2015/07/30 Python
12步教你理解Python装饰器
2016/02/25 Python
Python 包含汉字的文件读写之每行末尾加上特定字符
2016/12/12 Python
python2.7使用plotly绘制本地散点图和折线图
2019/04/02 Python
PyQt5使用QTimer实现电子时钟
2019/07/29 Python
Python GUI学习之登录系统界面篇
2019/08/21 Python
Python之Class&Object用法详解
2019/12/25 Python
Django 实现 Websocket 广播、点对点发送消息的代码
2020/06/03 Python
Python设计密码强度校验程序
2020/07/30 Python
详解基于python的图像Gabor变换及特征提取
2020/10/26 Python
H5调用相机拍照并压缩图片的实例代码
2017/07/20 HTML / CSS
英国领先的男士美容护发用品公司:Mankind
2016/08/31 全球购物
幼儿园毕业园长感言
2014/02/24 职场文书
《春到梅花山》教学反思
2014/04/16 职场文书
高三上学期学习自我评价
2014/04/23 职场文书
我的大学生活演讲稿
2014/04/25 职场文书
医院竞聘演讲稿
2014/05/16 职场文书
大学生撤销处分思想汇报
2014/09/12 职场文书
2014年设计师工作总结
2014/11/25 职场文书
大学生暑期实践报告之企业经营管理
2019/08/08 职场文书
Java处理延时任务的常用几种解决方案
2022/06/01 Java/Android
详解Spring Bean的配置方式与实例化
2022/06/10 Java/Android