从零学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的While循环语句的使用方法
Oct 13 Python
Python基础教程之正则表达式基本语法以及re模块
Mar 25 Python
Python中如何获取类属性的列表
Dec 26 Python
python虚拟环境的安装配置图文教程
Oct 20 Python
Python实现登陆文件验证方法
Oct 06 Python
Python线性拟合实现函数与用法示例
Dec 13 Python
Python API自动化框架总结
Nov 12 Python
python3中关于excel追加写入格式被覆盖问题(实例代码)
Jan 10 Python
推荐8款常用的Python GUI图形界面开发框架
Feb 23 Python
Pycharm中使用git进行合作开发的教程详解
Nov 17 Python
python爬虫线程池案例详解(梨视频短视频爬取)
Feb 20 Python
Python利用FlashText算法实现替换字符串
Mar 31 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 和 XML: 使用expat函数(三)
2006/10/09 PHP
PHP模块 Memcached功能多于Memcache
2011/06/14 PHP
php输出指定时间以前时间格式的方法
2015/03/21 PHP
php实现的mongodb操作类
2015/05/28 PHP
laravel 实现上传图片到本地和前台访问示例
2019/10/21 PHP
基于jquery实现的自动补全功能
2015/03/12 Javascript
Javascript 基础---Ajax入门必看
2016/07/06 Javascript
用JS中split方法实现彩色文字背景效果实例
2016/08/24 Javascript
angularjs利用directive实现移动端自定义软键盘的示例
2017/09/20 Javascript
node.js文件上传重命名以及移动位置的示例代码
2018/01/19 Javascript
webpack 插件html-webpack-plugin的具体使用
2018/04/09 Javascript
浅谈vue权限管理实现及流程
2020/04/23 Javascript
详解Python的Django框架中的templates设置
2015/05/11 Python
Python3.2模拟实现webqq登录
2016/02/15 Python
异步任务队列Celery在Django中的使用方法
2018/06/07 Python
python xlsxwriter创建excel图表的方法
2018/06/11 Python
Python设计模式之抽象工厂模式原理与用法详解
2019/01/15 Python
python opencv圆、椭圆与任意多边形的绘制实例详解
2020/02/06 Python
Python Django2 model 查询介绍(条件、范围、模糊查询)
2020/03/16 Python
matplotlib 曲线图 和 折线图 plt.plot()实例
2020/04/17 Python
pycharm 激活码及使用方式的详细教程
2020/05/12 Python
pycharm中如何自定义设置通过“ctrl+滚轮”进行放大和缩小实现方法
2020/09/16 Python
python 实现控制鼠标键盘
2020/11/27 Python
用CSS3实现无限循环的无缝滚动的实例代码
2017/07/04 HTML / CSS
你在项目中用到了xml技术的哪些方面?如何实现的?
2014/01/26 面试题
演讲稿怎么写
2014/01/07 职场文书
试用期员工考核制度
2014/01/22 职场文书
初二物理教学反思
2014/01/29 职场文书
旺仔牛奶广告词
2014/03/20 职场文书
关于保护环境的建议书
2014/05/13 职场文书
优秀团员事迹材料2000字
2014/08/20 职场文书
售房委托书
2014/08/30 职场文书
赔偿协议书范本
2014/09/12 职场文书
初中团委工作总结
2015/08/13 职场文书
Django debug为True时,css加载失败的解决方案
2021/04/24 Python
vue3使用vuedraggable实现拖拽功能
2022/04/06 Vue.js