从零学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 相关文章推荐
在Lighttpd服务器中运行Django应用的方法
Jul 22 Python
Python ftp上传文件
Feb 13 Python
python实现录音小程序
Oct 26 Python
Django forms表单 select下拉框的传值实例
Jul 19 Python
详解python中__name__的意义以及作用
Aug 07 Python
8段用于数据清洗Python代码(小结)
Oct 31 Python
Python实现计算长方形面积(带参数函数demo)
Jan 18 Python
Python GUI编程学习笔记之tkinter控件的介绍及基本使用方法详解
Mar 30 Python
Opencv常见图像格式Data Type及代码实例
Nov 02 Python
Django执行源生mysql语句实现过程解析
Nov 12 Python
Pyside2中嵌入Matplotlib的绘图的实现
Feb 22 Python
Python实现学生管理系统并生成exe可执行文件详解流程
Jan 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
重置版游戏视频
2020/04/09 魔兽争霸
使用无限生命期Session的方法
2006/10/09 PHP
PHP中trim()函数简单使用指南
2015/04/16 PHP
[企业公众号]升级到[企业微信]之后发送消息失败的解决方法
2017/06/30 PHP
php实现的三个常用加密解密功能函数示例
2017/11/06 PHP
utf8的编码算法 转载
2006/12/27 Javascript
一个简单的javascript类定义例子
2009/09/12 Javascript
获取客户端电脑日期时间js代码(jquery)
2012/09/12 Javascript
为jquery的ajaxfileupload增加附加参数的方法
2014/03/04 Javascript
基于jQuery Circlr插件实现产品图片360度旋转
2015/09/20 Javascript
javascript实现加载xml文件的方法
2015/11/24 Javascript
Express的路由详解
2015/12/10 Javascript
分析js闭包引起的事件注册问题
2016/03/29 Javascript
详解Vue中添加过渡效果
2017/03/20 Javascript
vue中keep-alive内置组件缓存的实例代码
2020/04/16 Javascript
Python发送Email方法实例
2014/08/21 Python
使用Python实现博客上进行自动翻页
2017/08/23 Python
基于Python函数的作用域规则和闭包(详解)
2017/11/29 Python
python在回调函数中获取返回值的方法
2019/02/22 Python
基于Python+Appium实现京东双十一自动领金币功能
2019/10/31 Python
使用 Python 处理3万多条数据只要几秒钟
2020/01/19 Python
Windows系统下pycharm中的pip换源
2020/02/23 Python
使用豆瓣源来安装python中的第三方库方法
2021/01/26 Python
5 个强大的HTML5 API 函数推荐
2014/11/19 HTML / CSS
德国传统玻璃制造商:Cristalica
2018/04/23 全球购物
英国在线药房:Chemist.co.uk
2019/03/26 全球购物
美国高端牛仔品牌:Silver Jeans
2019/12/12 全球购物
戴尔新加坡官网:Dell Singapore
2020/12/13 全球购物
俄罗斯商务邀请函
2014/01/26 职场文书
科研先进个人典型材料
2014/01/31 职场文书
药品业务员岗位职责
2014/04/17 职场文书
超市开业庆典策划方案
2014/05/14 职场文书
秦始皇兵马俑导游词
2015/02/02 职场文书
大学自主招生自荐信(2016精选篇)
2016/01/28 职场文书
Python Pytorch查询图像的特征从集合或数据库中查找图像
2022/04/09 Python
i7 6700处理器相当于i5几代
2022/04/19 数码科技