开发者社区> 天飞.h> 正文

head first python 6

简介: 使用函数 点击(此处)折叠或打开 #!/usr/bin/env python3 # -*- coding:utf-8 -*- #函数与处理的数据打包一起.
+关注继续查看
使用函数

点击(此处)折叠或打开

  1. #!/usr/bin/env python3
  2. # -*- coding:utf-8 -*-
  3. #函数与处理的数据打包一起.
  4. def filetolist(file,listname):
  5.     try:
  6.         #打开文件
  7.         with open(file) as jaf:
  8.             #读取数据行
  9.             data = jaf.readline()
  10.         #转换成list
  11.         listname=data.strip().split(',')
  12.         data = {}
  13.         data['name'] = listname.pop(0)
  14.         data['dob'] = listname.pop(0)
  15.         data['time'] = listname
  16.         result = print(data['name'] + '的三次最佳成绩是' + str(sorted(set([sanitize(each_it) for each_it in data['time']]))[0:3]))
  17.         #return listname
  18.         return result
  19.     except IOError as ioerr:
  20.         print('File error : %s' % ioerr)
  21.         return(None)
  22.         
  23. #处理字符,转换成m.s格式
  24. def sanitize(time_string):
  25.     if '-' in time_string:
  26.         splitter = '-'
  27.     elif ':' in time_string:
  28.         splitter = ':'
  29.     else:
  30.         return time_string
  31.     (min, sec) = time_string.split(splitter)
  32.     return (min + '.' + sec)

  33. for name in ["james", "julie", "mikey", "sarah"]:
  34.     thelist=filetolist(name+".txt",name)
  35.     #使用列表
  36.     #username=name+'user'
  37.     #userdob =name+'dob'
  38.     #username = thelist.pop(0)
  39.     #userdob = thelist.pop(0)
  40.     ##使用列表推导式
  41.     #name2 = [sanitize(each_it) for each_it in thelist]
  42.     ##使用工厂函数set()
  43.     #try:
  44.     # print(username + '的最佳成绩是' + str(sorted(set(name2))[0:3]))
  45.     #except TypeError as typerr:
  46.     # print('list type error %s' % typerr)
  47.     #使用字典
使用类

点击(此处)折叠或打开

  1. #!/usr/bin/env python3
  2. # -*- coding:utf-8 -*-
  3. import os
  4. class athlete:
  5.     def __init__(self, athlete_name, athlete_dob=None, athlete_times=[]):
  6.         self.name = athlete_name
  7.         self.dob = athlete_dob
  8.         self.times= athlete_times
  9.     def top3(self):
  10.         return(sorted(set([sanitize(time) for time in self.times]))[0:3])

  11. def openfile(filename):
  12.     try:
  13.         #打开文件
  14.         with open(filename) as athlete_file:
  15.             #读取数据
  16.             data = athlete_file.readline()
  17.             value_list= data.strip().split(',')
  18.             username = value_list.pop(0)
  19.             userdob = value_list.pop(0)
  20.             usertimes= value_list
  21.             #返回实例对象
  22.             athlete_instance=athlete(username,userdob,usertimes)
  23.             return(athlete_instance)
  24.     except IOError as ioerr:
  25.         print('File error %s' % ioerr)
  26.         return(None)

  27. #处理字符,转换成m.s格式
  28. def sanitize(time_string):
  29.     if '-' in time_string:
  30.         splitter = '-'
  31.     elif ':' in time_string:
  32.         splitter = ':'
  33.     else:
  34.         return time_string
  35.     (min, sec) = time_string.split(splitter)
  36.     return (min + '.' + sec)
  37. for name in ["james", "julie", "mikey", "sarah"]:
  38.     name = openfile(name+'.txt')
  39.     print(name.name + '的三次最佳成绩是' + str(name.top3()))


t@localhost 6$ python3 kelly.py     
James Lee的三次最佳成绩是['2.01', '2.16', '2.22']
Julie Jones的三次最佳成绩是['2.11', '2.23', '2.59']
Mikey McManus的三次最佳成绩是['2.22', '2.31', '2.38']
Sarah Sweeney的三次最佳成绩是['2.18', '2.21', '2.22']

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
20232 0
阿里云服务器ECS远程登录用户名密码查询方法
阿里云服务器ECS远程连接登录输入用户名和密码,阿里云没有默认密码,如果购买时没设置需要先重置实例密码,Windows用户名是administrator,Linux账号是root,阿小云来详细说下阿里云服务器远程登录连接用户名和密码查询方法
22255 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
23540 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,大概有三种登录方式:
13148 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
20887 0
+关注
天飞.h
脚踏实地,仰望天空. https://talenhao.github.io/
260
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载