编写一个程序,实现一下功能,要求 设计一个学生student类,包含学号、姓名、出生日期、性别等字段 从input.txt(从附件下载)中读取其中的学生信息,并存入学生集合list中 对学生集合list进行排序,按照出生日期从早到晚排序(即年龄由大到小) 将排序后的学生集合list输出到output.txt文件中,输出格式同input.txt:一行一个学生,依次输出学号、姓名、出生日期、性别并用空格隔开
时间: 2024-02-27 07:51:58 浏览: 72
设计一个学生类Student(学生学号、姓名、数学、英语、计算机成绩;)
5星 · 资源好评率100%
好的,我可以帮你完成这道题目。下面是 Python 代码实现:
```python
from datetime import datetime
# 定义学生类
class Student:
def __init__(self, id, name, birth, gender):
self.id = id
self.name = name
self.birth = datetime.strptime(birth, '%Y-%m-%d').date() # 将生日字符串转为日期对象
self.gender = gender
def __repr__(self):
return f'{self.id} {self.name} {self.birth.strftime("%Y-%m-%d")} {self.gender}'
# 读取学生信息文件,将学生信息存入列表中
students = []
with open('input.txt', 'r') as f:
for line in f:
id, name, birth, gender = line.strip().split()
students.append(Student(id, name, birth, gender))
# 对学生列表按照出生日期从早到晚排序
students.sort(key=lambda x: x.birth)
# 将排序后的学生信息写入输出文件
with open('output.txt', 'w') as f:
for student in students:
f.write(repr(student) + '\n')
```
你只需要将学生信息文件 `input.txt` 放在与 Python 脚本同一目录下,并运行上面的代码,即可得到排序后的学生信息文件 `output.txt`。
阅读全文