从零学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实现抓取百度搜索结果页的网站标题信息
Jan 22 Python
Python实现截屏的函数
Jul 26 Python
编写Python脚本抓取网络小说来制作自己的阅读器
Aug 20 Python
十个Python程序员易犯的错误
Dec 15 Python
用python实现将数组元素按从小到大的顺序排列方法
Jul 02 Python
python 文本单词提取和词频统计的实例
Dec 22 Python
python实现列表的排序方法分享
Jul 01 Python
从训练好的tensorflow模型中打印训练变量实例
Jan 20 Python
浅谈keras中的batch_dot,dot方法和TensorFlow的matmul
Jun 18 Python
python如何构建mock接口服务
Jan 28 Python
Python使用tkinter制作在线翻译软件
Feb 22 Python
Python用any()函数检查字符串中的字母以及如何使用all()函数
Apr 14 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-cli简介(不会Shell语言一样用Shell)
2013/06/03 PHP
zf框架的registry(注册表)使用示例
2014/03/13 PHP
PHP面向对象教程之自定义类
2014/06/10 PHP
PHP调用MySQL存储过程并返回值的方法
2014/12/26 PHP
PHP封装的多文件上传类实例与用法详解
2017/02/07 PHP
利用php操作memcache缓存的基础方法示例
2017/08/02 PHP
用js自动判断浏览器分辨率的代码
2007/01/28 Javascript
jQuery 白痴级入门教程
2009/11/11 Javascript
js随机颜色代码的多种实现方式
2013/04/23 Javascript
JavaScript 实现鼠标拖动元素实例代码
2014/02/24 Javascript
SeaJS入门教程系列之SeaJS介绍(一)
2014/03/03 Javascript
jquery插件jSignature实现手动签名
2015/05/04 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单的实现代码
2016/06/23 Javascript
同步文本框内容JS代码实现
2016/08/04 Javascript
Bootstrap CSS布局之图像
2016/12/17 Javascript
Ionic2开发环境搭建教程
2020/08/20 Javascript
jQuery ajax动态生成table功能示例
2017/06/14 jQuery
通过源码分析Vue的双向数据绑定详解
2017/09/24 Javascript
从源码看angular/material2 中 dialog模块的实现方法
2017/10/18 Javascript
浅谈vue首屏加载优化
2018/06/28 Javascript
vue中使用better-scroll实现滑动效果及注意事项
2018/11/15 Javascript
tracking.js页面人脸识别插件使用方法
2020/04/16 Javascript
150行代码带你实现微信小程序中的数据侦听
2019/05/17 Javascript
微信小程序左右滚动公告栏效果代码实例
2019/09/16 Javascript
如何基于layui的laytpl实现数据绑定的示例代码
2020/04/10 Javascript
在vue-cli3中使用axios获取本地json操作
2020/07/30 Javascript
vue $mount 和 el的区别说明
2020/09/11 Javascript
[36:20]完美世界DOTA2联赛PWL S3 access vs Rebirth 第一场 12.17
2020/12/18 DOTA
Python 抓取微信公众号账号信息的方法
2019/06/14 Python
Python提取转移文件夹内所有.jpg文件并查看每一帧的方法
2019/06/27 Python
Keras预训练的ImageNet模型实现分类操作
2020/07/07 Python
CSS3图片旋转特效(360/60/-360度)
2013/10/10 HTML / CSS
学习党史心得体会2016
2016/01/23 职场文书
八年级英语教学反思
2016/02/15 职场文书
Python 解决空列表.append() 输出为None的问题
2021/05/23 Python
Redis Cluster 集群搭建你会吗
2021/08/04 Redis