1、添加功能
- 需求:用户输入学员姓名、性别、手机号,将学员添加到系统
- 步骤:
- 用户输入姓名,性别,手机号
- 创建该学员对象
- 将该学员对象添加到列表
def add_student(self):
# 1.用户输入姓名、性别、手机号
name = input('请输入您的姓名:')
gender = input('请输入您的性别:')
tel = input('请输入您的手机号:')
# 2.创建学员对象 -- 先导入student模块:from student import *,再创建对象
student = Student(name,gender,tel)
# 3.将该对象添加到学员列表
self.student_list.append(student)
print(self.student_list)
print(student)
2、删除学员
- 需求:用户输入目标学员姓名,如果学员存在则删除该学员
- 步骤
- 用户输入目标学员姓名
- 遍历学员数据列表,如果用户输入的学员姓名存在则删除,否则提示该学员不存在(使用if-else语句进行判定)
def del_student(self):
# 1. 用户输入目标学员的姓名
del_name = input('请输入要删除的学员姓名:')
# 2. 遍历学员列表,如果用户输入的目标学院存在则删除,否则提示学员不存在
for i in self.student_list:
if i.name == del_name:
self.student_list.remove(i)
break
else:
print('查无此人!')
# 打印学员列表,验证删除功能
print(self.student_list)
3、修改学员信息
- 需求:用户输入目标学员姓名,如果学院存在则修改该学员信息
- 步骤:
- 用户输入目标学员姓名
- 遍历学员数据列表,如果用户输入的学员姓名存在则修改学员的姓名、性别、手机号数据,否则提示该学员不存在
def modify_student(self):
# 1. 用户输入目标学员姓名
modefy_name = input('请输入要修改的学员姓名:')
# 2.遍历列表数据,如果学员存在则修改姓名,性别和手机号,否则提示学员不存在
for i in self.student_list:
if modefy_name == i.name:
i.name = input('姓名:')
i.gender = input('性别:')
i.tel = input('手机号:')
print(f'修改学员信息成功。姓名{i.name},性别{i.gender},手机号{i.tel}')
break;
else:
print('查无此人')
4、查询学员信息
- 需求:用户输入目标学员姓名,如果学员存在则打印该学员信息
- 步骤
- 用户输入目标学员姓名
- 遍历学员数据列表,如果用户输入的学员姓名存在则打印该学员信息,否则提示该学员不存在
def search_student(self):
# 1.用户输入目标学员姓名
search_name = input('请输入您要搜索的学员姓名:')
# 2.遍历列表,如果学员存在打印学员信息,否则提示学员不存在
for i in self.student_list:
if search_name == i.name:
print(f'姓名{i.name},性别{i.gender},手机号{i.tel}')
break
else:
print('查无此人!')
5、显示所有学员信息
- 需求:打印所有学员信息
- 步骤:使用for循环遍历列表
def show_student(self):
# 1.打印表头
print('姓名\t性别\t手机号')
# 2.打印学员数据
for i in self.student_list:
print(f'{i.name}\t{i.gender}\t{i.tel}')
6、保存学员信息
- 需求:将修改后的学员数据保存到存储数据的文件
- 步骤:
- 打开文件(注:注意打开方式,先使用“r”打开方式,如果“r”打开方式不行采用“w”打开方式)
- 文件写入数据(注:文件写入的数据需要经过数据类型转换,用户输入内容后保存的是内存地址,需要把学员数据转换成列表字典数据再做存储;另外文件内数据要求为字符串类型,故需要先转换数据类型为字符串才能在文件中写入数据)
- 写入文件后一定记得调用close方法关闭文件
def save_student(self):
# 1.打开文件,调用此方法之后会先创建一个名为student.data的文件
f = open('student.data','w')
# 2. 文件写入学员数据
# 注意1:文件写入的数据不能是学员对象的内存地址,需要把学员数据转换陈列表字典数据再做存储
new_list = [i.__dict__ for i in self.student_list]
print(new_list)
# 注意2:文件内数据要求为字符串类型,故需要转换数据类型为字符串才能在文件中写入数据
f.write(str(new_list))
# 3.关闭文件
f.close()
7、加载学员信息
- 需求:每次用户进入系统之后可以通过调用加载学员信息功能载入student.data文件中的数据
- 步骤:
- 尝试以“r”模式打开学员数据文件,如果文件不存在则以“w”模式打开文件
- 如果文件存在则读取数据并存储数据
- 关闭文件
def load_student(self):
# 1.打开文件:尝试r打开,如果有异常w打开
try:
f = open('student.data','r')
except:
f = open('student.data','w')
else:
# 2.读取数据:文件读取的数据是字符串还原列表类型:[{}]转换[学员对象]
data = f.read()
new_list = eval(data)
self.student_list = [Student(i['name'],i['gender'],i['tel']) for i in new_list]
finally:
# 3.关闭文件
f.close()
Always have,always will.
具体的项目代码在这里下载:Python编程简单学员管理系统