Examples of data processing programming from the zero-learning Python series (i) _python

Source: Internet
Author: User

Requirements: The name of the James,julie,mikey,sarah four students to establish a text file, respectively, storage of their own results, time format is accurate to minutes, the shorter the results, respectively, the output of each student without repetition of the top three best results, and the seconds and minutes of the separator to be unified as "."

Data preparation: Four text files created separately

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

Code implementation:

Copy Code code as follows:

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 (', ')) #将字符间的空格清除后, separating characters with commas
Except IOError as Ioerr:
Print (' File error ' + str (ioerr)) #异常处理, printing error
Return (None)
#定义函数modify_time_format将所有文件中的时分表达方式统一为 "min. sec"
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函数删除新列表中重复项 and generate a new collection
In_order=sorted (delete_repetition) #采用复制排序sorted函数对无重复性的新集合进行排序
Return (In_order[0:3]) #返回列表前三项
# Output The top three of the corresponding file in the previous time
Print (Get_prev_three ("James.txt"))
Print (Get_prev_three ("Julie.txt"))
Print (Get_prev_three ("Mikey.txt"))
Print (Get_prev_three ("Sarah.txt"))

Output results:

Copy Code code as follows:

[' 2.01 ', ' 2.22 ', ' 2.34 ']
[' 2.11 ', ' 2.23 ', ' 2.59 ']
[' 2.22 ', ' 2.38 ', ' 2.49 ']
[' 2.18 ', ' 2.25 ', ' 2.39 ']

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.