从零学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通过装饰器检查函数参数数据类型的方法
Mar 13 Python
Django中处理出错页面的方法
Jul 15 Python
python xml解析实例详解
Nov 14 Python
Python学习之Django的管理界面代码示例
Feb 10 Python
6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)
Jan 06 Python
pytorch构建多模型实例
Jan 15 Python
python实现滑雪游戏
Feb 22 Python
python GUI库图形界面开发之PyQt5多行文本框控件QTextEdit详细使用方法实例
Feb 28 Python
浅析pandas随机排列与随机抽样
Jan 22 Python
Python图像处理之膨胀与腐蚀的操作
Feb 07 Python
使用pandas生成/读取csv文件的方法实例
Jul 09 Python
Python下载商品数据并连接数据库且保存数据
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 上传文件类型判断函数(避免上传漏洞 )
2010/06/08 PHP
11个PHP 分页脚本推荐
2011/08/15 PHP
深入探讨:PHP使用数据库永久连接方式操作MySQL的是与非
2013/06/05 PHP
php像数组一样存取和修改字符串字符
2014/03/21 PHP
PHP5中实现多态的两种方法实例分享
2014/04/21 PHP
PHP随机生成信用卡卡号的方法
2015/03/23 PHP
分享5个非常有用的Laravel Blade指令
2018/05/30 PHP
网页右下角弹出窗体实现代码
2014/06/05 Javascript
jQuery在线选座位插件seat-charts特效代码分享
2015/08/27 Javascript
js实现微信分享代码
2020/10/11 Javascript
限制只能输入数字的实现代码
2016/05/16 Javascript
微信小程序基于本地缓存实现点赞功能的方法
2017/12/18 Javascript
JS实现键值对遍历json数组功能示例
2018/05/30 Javascript
微信小程序实现弹出菜单动画
2019/06/21 Javascript
一文看懂如何简单实现节流函数和防抖函数
2019/09/05 Javascript
[45:59]EG vs OG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
Python删除指定目录下过期文件的2个脚本分享
2014/04/10 Python
Python中的yield浅析
2014/06/16 Python
python标准算法实现数组全排列的方法
2015/03/17 Python
在SAE上部署Python的Django框架的一些问题汇总
2015/05/30 Python
python实现字符串连接的三种方法及其效率、适用场景详解
2017/01/13 Python
pytorch 使用加载训练好的模型做inference
2020/02/20 Python
Python3 assert断言实现原理解析
2020/03/02 Python
python3用PyPDF2解析pdf文件,用正则匹配数据方式
2020/05/12 Python
python+selenium 简易地疫情信息自动打卡签到功能的实现代码
2020/08/22 Python
Python通过len函数返回对象长度
2020/10/22 Python
应征英语教师求职信
2013/11/27 职场文书
小学生手册家长评语
2014/04/16 职场文书
慰问敬老院活动总结
2014/04/26 职场文书
体育活动总结范文
2014/05/04 职场文书
授权委托书(法人单位用)
2014/09/29 职场文书
离婚协议书标准格式
2014/10/04 职场文书
出纳年终工作总结2014
2014/12/05 职场文书
党支部承诺书
2015/01/20 职场文书
期末个人总结范文
2015/02/13 职场文书
python scipy 稀疏矩阵的使用说明
2021/05/26 Python