从零学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中利用Pandas库处理大数据的简单介绍
Apr 07 Python
Python与shell的3种交互方式介绍
Apr 11 Python
在Python中使用SimpleParse模块进行解析的教程
Apr 11 Python
Python实现字符串逆序输出功能示例
Jun 24 Python
python字典快速保存于读取的方法
Mar 23 Python
Flask-Mail用法实例分析
Jul 21 Python
win10下tensorflow和matplotlib安装教程
Sep 19 Python
django云端留言板实例详解
Jul 22 Python
Python可以实现栈的结构吗
May 27 Python
解析Tensorflow之MNIST的使用
Jun 30 Python
Numpy中np.max的用法及np.maximum区别
Nov 27 Python
解决python 输出到csv 出现多空行的情况
Mar 24 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
ThinkPHP自定义Redis处理SESSION的实现方法
2016/05/16 PHP
PHP实现转盘抽奖算法分享
2020/04/15 PHP
Laravel中正确地返回HTTP状态码方法示例
2019/09/10 PHP
实现连缀调用的map方法(prototype)
2009/08/05 Javascript
js动态拼接正则表达式的两种方法
2014/03/04 Javascript
javascript的事件触发器介绍的实现
2014/06/05 Javascript
Jquery中$.post和$.ajax的用法小结
2015/04/28 Javascript
jQuery中$.each()函数的用法引申实例
2016/05/12 Javascript
scroll事件实现监控滚动条并分页显示(zepto.js)
2016/12/18 Javascript
javascript操作cookie
2017/01/17 Javascript
微信小程序开发之选项卡(窗口底部TabBar)页面切换
2017/04/12 Javascript
js登录滑动验证的实现(不滑动无法登陆)
2018/01/03 Javascript
微信小程序动态生成二维码的实现代码
2018/07/25 Javascript
Vue项目pdf(base64)转图片遇到的问题及解决方法
2018/10/19 Javascript
详解vue数组遍历方法forEach和map的原理解析和实际应用
2018/11/15 Javascript
vue 使用外部JS与调用原生API操作示例
2019/12/02 Javascript
JS通用方法触发点击事件代码实例
2020/02/17 Javascript
[01:42]辉夜杯战队访谈宣传片—FANTUAN
2015/12/25 DOTA
[06:20]2015国际邀请赛第三日top10
2015/08/08 DOTA
[00:14]护身甲盾
2019/03/06 DOTA
用Python编写脚本使IE实现代理上网的教程
2015/04/23 Python
python中string模块各属性以及函数的用法介绍
2016/05/30 Python
Python实现将json文件中向量写入Excel的方法
2018/03/26 Python
python实现反转部分单向链表
2018/09/27 Python
Django用户认证系统 组与权限解析
2019/08/02 Python
如何基于Python实现数字类型转换
2020/02/07 Python
用pandas划分数据集实现训练集和测试集
2020/07/20 Python
基于python调用jenkins-cli实现快速发布
2020/08/14 Python
PyCharm上安装Package的实现(以pandas为例)
2020/09/18 Python
别名指示符是什么
2012/10/08 面试题
公务员个人自我评价分享
2013/11/06 职场文书
四下基层实施方案
2014/03/28 职场文书
企业安全生产月活动总结
2014/07/05 职场文书
团代会闭幕词
2015/01/28 职场文书
历史名人教你十五个读书方法,赶快Get起来!
2019/07/18 职场文书
MySQL七大JOIN的具体使用
2022/02/28 MySQL