定制数据对象2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | # Author kevin_hou def sanitize(time_string): #将时间格式化为统一字符串格式 if '-' in time_string: splitter = '-' elif ':' in time_string: splitter = ':' else : return (time_string) (mins, secs) = time_string.split(splitter) return (mins + '.' + secs) class Athlete: #定义父类 def __init__( self , a_name, a_dob = None , a_times = []): self .name = a_name self .don = a_dob self .times = a_times def top3( self ): #定义筛选前三项子函数 return ( sorted ( set ([sanitize(t) for t in self .times]))[ 0 : 3 ]) def add_time( self , time_value): #将1个额外的计时值追加到选手的计时数据 self .times.append(time_value) def add_times( self , list_of_times): #用1个或多个计时值(提供为1个列表) self .times.extend(list_of_times) #来扩展1个选手的计时数据 def get_coah_data(filename): #打开文件获取数据 try : with open (filename) as f: data = f.readline() temp1 = data.strip().split( ',' ) # return ({'Name': temp1.pop(0), # 'DOB': temp1.pop(0), # 'Times': str(sorted(set([sanitize(t) for t in temp1]))[0:3])}) return Athlete(temp1.pop( 0 ), temp1.pop( 0 ), temp1) except IOError as ioerr: print ( 'File error:' + str (ioerr)) return ( None ) james = get_coah_data( 'james2.txt' ) sarah = get_coah_data( 'sarah2.txt' ) # print(james['Name'] + "'s fastest times are:" + james['Times']) print (james.name + "'s fastest times are:" + str (james.top3())) #James Lee's fastest times are:[' 2.34', '2.01', '2.22'] print (sarah.name + "'s fastest times are:" + str (sarah.top3())) #Sarah Sweeney's fastest times are:['2.18', '2.25', '2.39'] vera = Athlete( 'Vera Vi' ) vera.add_time( '1.31' ) print (vera.top3()) #['1.31'] vera.add_times([ '2.22' , "1;21" , '2:22' ]) print (vera.top3()) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律