啊彪是 2022-12-22 13:03 采纳率: 100%
浏览 116
已结题

Python求解!急!悬赏!

1.设计程序,将一组学生(5名学生为一组)相关信息(每个学生的信息包含:学号、姓名、性别和电话)以字典格式把相关内容写到“学生信息.txt”文件中,再将“学生信息.txt”文件内容全部读取显示。
学生的字典信息格式如下:
Stu_1={‘sno’:’202201’, ’name’:’张三’,
’sex’:’男’, ’tel’:’12345678901’}
2.设计并生成一个学生类(class),定义方法实现上题中“学生信息.txt”中学生信息的增加和查询功能。

  • 写回答

5条回答 默认 最新

  • 我不是idol 2022-12-22 13:48
    关注
    # 将学生信息以字典格式写入文件
    def write_stu_info_to_file(stu_list):
        # 打开文件,设置写入模式
        with open('学生信息.txt', 'w') as file:
            # 循环学生信息列表,将每个学生的信息写入文件
            for stu in stu_list:
                file.write(str(stu) + '\n')
    
    # 读取文件中的学生信息,并将其转化为字典格式
    def read_stu_info_from_file():
        # 创建空列表,用于存储读取到的学生信息
        stu_list = []
        # 打开文件,设置读取模式
        with open('学生信息.txt', 'r') as file:
            # 逐行读取文件内容
            for line in file:
                # 将每行文本转化为字典格式
                stu = eval(line)
                # 将学生信息添加到列表中
                stu_list.append(stu)
        # 返回读取到的学生信息列表
        return stu_list
    
    # 学生类
    class Student:
        # 构造函数,用于初始化学生信息
        def init(self, sno, name, sex, tel):
            self.sno = sno
            self.name = name
            self.sex = sex
            self.tel = tel
        
        # 增加学生信息的方法
        def add_stu(self):
            # 将学生信息以字典格式写入文件
            write_stu_info_to_file([self])
    
        # 查询学生信息的方法
        def query_stu(self):
            # 读取文件中的学生信息
            stu_list = read_stu_info_from_file()
            # 循环学生信息列表,查询指定学生信息
            for stu in stu_list:
                # 如果学号相同,则返回学生信息
                if stu['sno'] == self.sno:
                    return stu
                # 如果没有找到指定学号的学生,则返回空字典
                return {}
    
    # 测试代码
    if name == 'main':
        # 创建学生1对象
        stu1 = Student('202201', '张三', '男', '12345678901')
        # 增加学生1信息
        stu1.add_stu()
        # 创建学生2对象
        stu2 = Student('202202', '李四', '女', '12345678902')
        # 增加学生2信息
        stu2.add_stu()
        # 创建学生3对象
        stu3 = Student('202203', '王五', '男', '12345678903')
        # 增加学生3信息
        stu3.add_stu()
        # 查询学生1信息
        print(stu1.query_stu())
        # 查询学生2信息
        print(stu2.query_stu())
        # 查询学生3信息
        print(stu3.query_stu())
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月22日
  • 已采纳回答 12月22日
  • 创建了问题 12月22日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效