python脚本编程实例_从零学python系列之数据处理编程实例(一)

要求:分别以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']

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/490638.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

量子纠缠为什么不能用于瞬时通讯?

来源:数学职业家什么是信息? 信息的一个比较被认可的定义是1948年数学家香农在论文中提出的:信息是用来消除随机不定性的东西。比如,盒子里有一个硬币,它可以是正面向上,也可以是反面向上,在打开…

第二次冲刺每日站立会议03

会议照片: 会议内容: 祖浩然: 昨天:学习要进行优化的相关知识 今天:对前两个界面进行界面的修改 遇到的问题:设置背景图片之后按钮无法显示 刘洋: 昨天:学习要进行优化的相关知识 今…

cad菜单栏快捷键_天正建筑菜单栏不见了怎么调出来

在使用天正建筑得出时候,可能会因为不小心,把菜单栏关闭了,却一时不知道怎样打开,下面使用三种方式,教你将不见了的菜单栏调出来。方法一:使用键盘快捷键1.在界面中,我们可以看到,这…

图说报告 | “智能+”的终极版图:数字孪生世界

来源:阿里研究院数字孪生(Digital Twin)是近几年兴起的非常前沿的新技术,进入Gartner2019年十大战略技术趋势行列。今天,从300万个波音777零部件到人类心脏,其数字孪生体都可以复制。在未来的医疗领域&…

BZOJ2732: [HNOI2012]射箭

列出不等式&#xff0c;二分&#xff0c;半平面交判定。注意可行域可能为点或线段或无界区域。坐标范围略大&#xff0c;算出来a的范围约为-1e9~-1e-18&#xff08;a<0&#xff09;&#xff0c;理论上要用long double&#xff0c;不过好像double也能过。 #include<algori…

MATLAB画频率响应曲线(幅频特性和相频特性)并将横坐标转换为赫兹hz单位

matlab画频率响应曲线的函数为&#xff1a; [h,w] freqz(b,a,n) b,a&#xff1a;传递函数系数 h&#xff1a;频率响应 w&#xff1a;角频率&#xff0c;0~π 更多参数解释参考官方链接https://ww2.mathworks.cn/help/signal/ref/freqz.html?requesteddomaintrue 用freqz…

python3.6配置环境变量_python安裝及环境变量配置

一、安装 1.python下载 进入官网后选择download&#xff0c;选择windows进入如下页面1.1 python3.6.6版本下载 首先我们下载python3.6.6版本&#xff0c;下滑页面找到此位置&#xff0c;64位系统选择红色框框&#xff0c;32位选择蓝色框框点击进行下载 1.2 python2.7版本下载 下…

sqlserver binary varbinary image 的区别

binary固定长度的二进制数据&#xff0c;其最大长度为 8,000 个字节。varbinary可变长度的二进制数据&#xff0c;其最大长度为 8,000 个字节。image可变长度的二进制数据&#xff0c;其最大长度为 2^31 - 1 (2,147,483,647) 个字节转载于:https://www.cnblogs.com/lvdongjie/p…

人与动物之间有没有一条不可逾越的鸿沟?——从基础存在论到生命哲学

来源&#xff1a;《哲学动态》 2018年第12期作者&#xff1a;舒红跃&#xff08;湖北大学哲学学院&#xff09;张哲&#xff08;湖北省道德与文明研究中心&#xff09;海德格尔《存在与时间》中对“此在”的生存论刻画是哲学史中的经典&#xff0c;此在“在-世界中-存在”是存在…

matlab显示曲线图中某个点的坐标值

在画好一幅曲线图后&#xff0c;有时候我们需要找出某个坐标的点&#xff0c;可以通过打开数据游标功能&#xff0c;此时鼠标点击的位置就会显示出坐标值&#xff0c;如下图&#xff1a; 此时保存下来的图也会带有显示的坐标值。 如果需要显示多个坐标的值&#xff0c;按住alt…

python保留字的是_Python保留字

下面的列表显示了在Python中的保留字。这些保留字不能用作常数或变数&#xff0c;或任何其他标识符名称。 所有 Python 的关键字只包含小写字母。 1、and and 用于表达式运算&#xff0c;逻辑与操作 2、as as用于类型转换 3、assert assert断言&#xff0c;用于判断变量或条件表…

数字滤波器的差分方程和传递函数

差分方程用于描述线性、时不变、因果滤波器 数字滤波器的差分方程表示为&#xff1a; 对应的系统函数/传递函数为&#xff1a; a_k&#xff0c;b_k为滤波器系数 当a_k0时&#xff0c;滤波器当前的输出仅依赖于输入&#xff0c;而不依赖过去的输出&#xff0c;称为非递归滤波器…

javascript中浅拷贝和深拷贝的理解

javascript中浅拷贝和深拷贝的理解 什么是拷贝&#xff1f; 简单地说就是复制&#xff0c;对数据的复制 浅拷贝&#xff1a;改变拷贝者的值&#xff0c;被拷贝者的值也会变化 深拷贝&#xff1a;改变拷贝者的值&#xff0c;被拷贝者的值不会变化 由于基本数据类型是存放在栈中&…

2019年AI实力对决:美国领跑,中国追赶,欧盟弱势

来源&#xff1a; 智东西&#xff0c;Data Innovation美国当地时间8月18日&#xff0c;美国数据创新中心&#xff08;Center for Data Innovation&#xff09;发布针对中国、美国和欧洲三大地区的人工智能发展报告&#xff0c;报告显示&#xff0c;目前美国在AI发展中仍然保持领…

谷歌学术搜索技巧:查找一个句子的某个空应该用什么词

在写论文的时候经常遇到某个地方不知道应该用什么词比较专业的问题&#xff0c;举个例子&#xff1a; we used training strategy * in literature [10] *号处应该填什么词比较专业呢 这时可以在谷歌学术找到答案 在谷歌学术搜索中输入&#xff1a; "training strate…

python中str和input_python中eval()函数和input()函数用法解析

今天给大家讲解Python中eval()函数和input()函数的用法&#xff0c;希望通过实例的讲解之后大家能对这两个函数有更加深刻的理解。 1.eval()函数 eval(<字符串>)能够以Python表达式的方式解析并执行字符串&#xff0c;并将返回结果输出。eval()函数将去掉字符串的两个引号…

VIM操作技巧

使用vim有一段时间了&#xff0c;现在记录部分操作技巧&#xff1a; 1.查找当前光标所在的单词&#xff0c;都出现在什么位置 匹配当前光标所在的单词&#xff0c;#&#xff08;上一个&#xff09;或*&#xff08;下一个&#xff09;键 2.复制当前单词 ye可复制当前的单词&…

关于未来的蝴蝶效应,《崛起的超级智能》创作有感

来源&#xff1a;刘锋科学网博客前言&#xff1a;2019年7月5日&#xff0c;当我拿到出版社寄出的《崛起的超级智能&#xff1a;互联网大脑如何影响科技未来》时&#xff0c;仿佛在捧着一个刚出生的婴儿。不是十月怀胎&#xff0c;而是历经12年的孕育&#xff0c;2年多的艰苦生产…

python函数库_10. 标准库简介

10.标准库简介 10.1.操作系统接口 os 模块提供了许多与操作系统交互的函数: >>>import os >>>os.getcwd() # Return the current working directory C:\\Python39 >>>os.chdir(/server/accesslogs) # Change current working directory >>>…

LaTeX表格字太贴近上面表线

如图所示&#xff0c;默认情况下有时候会出现表格中的字太贴近上面表线的问题&#xff1a; 解决方法&#xff1a;在\begin{tabular}{c|cc|cc|cc}命令前面加一句\renewcommand{\arraystretch}{1.5} 效果如图&#xff1a; \renewcommand{\arraystretch}{number}命令可以调整表线和…