酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

文件score.txt中有若干行,每行保存了一位学生的成绩信息,格式: 姓名 学号 平日成绩 期末成绩。编写程序,读出所有同学的成绩,去掉期末成绩为0的学生, 再按照期末成绩降序,期末成绩相同的话按照平日成绩降序,平日成绩相同按照学号升序, 排序后以“姓名,学号,平日成绩,期末成绩”的格式,每位学生一行输出到文件new.txt 中。

解析:首先需要读取score.txt文件中的学生成绩信息,然后根据给定的条件进行筛选和排序,最后将结果输出到new.txt文件中。 代码如下: ```python # 定义学生类 class Student: def __init__(self, name, id, daily_score, final_score): self.name = name self.id = id self.daily_score = daily_score self.final_score = final_score def __str__(self): return f"{self.name},{self.id},{self.daily_score},{self.final_score}" # 读取文件内容 with open("score.txt", "r") as f: lines = f.readlines() # 解析学生信息 students = [] for line in lines: name, id, daily_score, final_score = line.strip().split() student = Student(name, int(id), float(daily_score), float(final_score)) students.append(student) # 筛选期末成绩不为0的学生 students = [s for s in students if s.final_score != 0] # 排序 students.sort(key=lambda x: (-x.final_score, -x.daily_score, x.id)) # 输出到文件 with open("new.txt", "w") as f: for student in students: f.write(str(student) + " ") ``` 这段代码首先定义了一个学生类,用于存储学生的姓名、学号、平日成绩和期末成绩。然后读取score.txt文件中的内容,解析出学生信息并存储在一个列表中。接着筛选出期末成绩不为0的学生,并按照给定的条件进行排序。最后将排序后的学生信息输出到new.txt文件中。 [2024-06-24 00:10:22 | AI写代码神器 | 431点数解答]

相关提问