本文共 1614 字,大约阅读时间需要 5 分钟。
定义一个名为Student的类,包含以下属性和方法:
属性:
name:学生姓名dob:生日age:年龄gender:性别score:分数列表方法:
__init__:初始化方法,接收并赋值name、dob、age、gender和score。sanitize:清洗分数方法,将负数转换为正数。top3:返回最大的三个分数。print_stu:打印学生信息,包括最高三个分数。读取并解析txt文件:
输出学生信息:
以下是优化后的Python代码:
import osclass Student: def __init__(self, name, dob, age, gender, score): self.name = name self.dob = dob self.age = age self.gender = gender self.score = score def sanitize(self): self.score = [int(i) for i in self.score] for i in range(len(self.score)): if self.score[i] < 0: self.score[i] = abs(self.score[i]) def top3(self): self.sanitize() self.score = sorted(self.score) self.score = self.score[-3:] def print_stu(self): self.top3() print(f"姓名:{self.name},生日:{self.dob},年龄:{self.age},性别:{self.gender},最高分数:{self.score}")# 读取文件并创建学生对象列表path = './aistudio/work'file_list = []for filename in os.listdir(path): if filename.endswith('.txt'): file_list.append(filename)stu_list = []for filename in file_list: with open(os.path.join(path, filename), 'r', encoding='UTF-8') as f: data = f.read().split(',') stu = Student( name=data[0], dob=data[1], age=data[2], gender=data[3], score=dict(map(float, data[4:])) ) stu_list.append(stu)# 输出所有学生信息for stu in stu_list: stu.print_stu() 该代码定义了Student类,能够读取并解析txt文件中的数据,处理负数分数,并输出学生的信息。代码结构清晰,易于理解和维护。
转载地址:http://rzlfk.baihongyu.com/