运用面向对象的部分内容,进行学生信息的增、删、改、查

创建student.py文件

# 定义学生类
class Student(object):
	# 添加学生id,姓名,年龄,性别属性
	def __init__(self,stu_id,name,age,gender):
		# 学生id
		self.stu_id = stu_id
		# 学生姓名
		self.name = name
		# 学生年龄
		self.age = age
		# 学生性别
		self.gender = gender
	# 输出
	def __str__(self):
		return f"学生学号:{self.stu_id},学生姓名:{self.name},学生年龄:{self.age},学生性别:{self.gender}"
# 防止别人导入时执行
if __name__ == '__main__':
    stu = Student(1, '王', 18, '男')
    print(stu)

定义student_manager_system,py文件

# 导入student.py文件
import student
# 创建stu_dicts储存学生信息(可用列表、元组)
class StudentManagerSystem(object):
    def __init__(self):
    	# 定义用于储存学生信息
        self.stu_dicts = {}
    # 定义为静态方法
    @staticmethod
    # 定义目录用于进行操作
    def show_menu():
        print('1.添加学生新生')
        print('1.删除学生新生')
        print('3.修改学生信息')
        print('4.查看指定学生信息')
        print('5.查看所有学生信息')
        print('6.退出系统')
	# 添加学生信息
    def insert_student(self):
        # input获取学生信息
        stu_id = input("请输入学生学号:")
        # 代码优化,判断学生信息是否存在,学号是否存在,判断字典key是否存在
        if stu_id in self.stu_dicts:  # key存在返回True
            print('学生信息已存在!')
            return
        # 输入学生姓名
        name = input("请输入学生姓名:")
        # 输入学生年龄
        age = input("请输入学生年龄:")
        # 输入学生性别
        gender = input("请输入学生性别:")
        # 使用学生信息 ,创建学生对象
        stu = student.Student(stu_id, name, age, gender)
        # 将学生对象添加到字典中   字典添加数据:字典[key] = 数据值
        self.stu_dicts[stu_id] = stu
	# 删除学生信息
    def remove_student(self):
        # 1.使用input输入学号
        stu_id = input("请输入学号:")
        # 判断是否存在
        if stu_id in self.stu_dicts:
            # 删除字典中数据
            del self.stu_dicts[stu_id]
            print("学生已经删除!")
        # 不存在输出
        else:
            print("学生信息不存在,无法删除!")
	# 定义修改学生信息
    def modify_student(self):
        # 1.使用input输入学号
        stu_id = input("请输入学号:")
        # 判断是否存在
        if stu_id in self.stu_dicts:
            # 修改对象属性  对象.属性名= 属性值
            stu = self.stu_dicts[stu_id]
            # 输入修改后的年龄
            stu.age = input('请输入新的学生年龄:')
            # 输入修改后的学生姓名
            stu.name = input("请输入新的学生姓名:")
            # 输入修改后的学生性别
            stu.gender = input("请输入新的学生性别:")
            print("学生已经修改!")
        # 如果不存在输出
        else:
            print("学生信息不存在,无法删除!")
	# 定义查找学生信息
    def search_student(self):
        # 1.使用input输入学号
        stu_id = input("请输入学号:")
        # 判断是否存在
        if stu_id in self.stu_dicts:
            # 修改对象属性  对象.属性名= 属性值
            stu = self.stu_dicts[stu_id]
            print(stu)
        else:
            print("学生信息不存在,无法删除!")
	# 定义查看所有学生信息
    def show_all_info(self):
    	# 循环遍历学生信息
        for stu in self.stu_dicts.values():
            print(stu)
	# 定义文件
    def save(self):
    	# 如果存在student.txt文件则覆盖,没有则创建
        f = open('student.txt', 'w', encoding='utf-8')
        # 遍历stu_dicts储存到文件中
        for stu in self.stu_dicts.values():
            f.write(str(stu) + '\n')  # str(stu)  调用student类中的__str__方法
        # 关闭文件
        f.close()
	# 防止报错
    def load_info(self):
        try:
            f = open('student.txt', 'r', encoding='utf-8')
            # 定义空列表写入
            buf_list = f.readlines()
            # 循环遍历列表
            for buf in buf_list:
                buf = buf.strip()  # 移除自带的\n(回车符)
                info_list = buf.split(',')  # 列表类型
                # 创建对象
                # stu = student.Student(info_list[0],info_list[1],info_list[2],info_list[3])
                stu = student.Student(*info_list)  # 等价于上一个
                # 将对象添加到字典中
                stu_id = info_list[0]
                self.stu_dicts[stu_id] = stu
            # 关闭文件
            f.close()
       	# 不报错跳过
        except Exception:
            pass
	# 定义开始函数
    def start(self):
        while True:
            self.show_menu()
            # 输入操作
            opt = input("请输入要操作编号:")
            if opt == '1':
                self.insert_student()
            elif opt == '2':
                self.remove_student()
            elif opt == '3':
                self.modify_student()
            elif opt == '4':
                self.search_student()
            elif opt == '5':
                self.show_all_info()
            elif opt == '6':
                self.save()
                print('欢迎下次使用本程序')
                break
            else:
                print("输入有误,请再次输入"·)
                continue
            input("——————————输入回车下一步——————————")

建立main.py文件(主文件,用于运行程序)

# 导入student_manager_system.py文件
import student_manager_system as sms
# 魔法方法
if __name__ == '__main__':
    stu_sms = sms.StudentManagerSystem()
    stu_sms.start()