学生
命名:student.py
class Student(object):
def __init__(self, name, gender, tel):
self.name = name
self.gender = gender
self.tel = tel
def __str__(self):
return f"{self.name},{self.gender},{self.tel}"
# test code
if __name__ == '__main__':
aa = Student('aa', '男', 15615634741)
print(aa)
数据异常处理
命名:data_check_class.py
class GenderCheck(Exception):
def __init__(self):
self.man = '男'
self.woman = '女'
def __str__(self):
return f'性别只能是{self.man}和{self.woman}'
class TelCheck(Exception):
def __init__(self):
self.data_type = type(int)
def __str__(self):
return '电话格式不正确'
管理系统
命名:manageSystem.py
from student import *
from data_check_class import *
class StudentManage(object):
def __init__(self):
self.student_list = [] # use list save std info
# define Entrance Function
def run(self):
# 1、加载学员数据
self.load_stdunet()
# 2、显示功能菜单
while True:
self.show_menu()
# 3、用户选择功能按照序号
menu_label = int(input('请输入选择的功能序号:'))
# 4、根据序号选择不同的功能
if menu_label == 1:
self.add_student()
elif menu_label == 2:
self.del_student()
elif menu_label == 3:
# correct info
self.modify_student()
elif menu_label == 4:
# search info
self.search_studnet()
elif menu_label == 5:
# print all info
self.show_stdunet()
elif menu_label == 6:
# save std info
self.save_student()
elif menu_label == 7:
# exit system
break
else:
print('请输入正确的序号:')
# 定义功能函数
# 显示功能函数
@staticmethod
def show_menu():
print('请选择如下功能:')
print('1:添加学员')
print('2:删除学员')
print('3:修改学员信息')
print('4:查询学员信息')
print('5:显示所有学员信息')
print('6:保存学员信息')
print('7:退出系统')
def add_student(self):
try:
name = input('请输入学员姓名:')
gender = input('请输入学员性别:')
tel = int(input('请输入学员手机号码:'))
if not (gender == '男' or gender == '女'):
raise GenderCheck()
except GenderCheck as s:
print(s)
return 0
except ValueError as k:
print(TelCheck())
return 0
else:
# 创建对象
student = Student(name, gender, tel)
self.student_list.append(student) # 列表追加对象的返回值
def del_student(self):
name = input('请输入要删除的学员姓名:')
for i in self.student_list:
if i.name == name:
self.student_list.remove(i)
break
else:
print('没有此人')
def modify_student(self):
# print('修改学员信息')
correct_name = input('请输入要修改学员的姓名')
for i in self.student_list:
if i.name == correct_name:
print('查找成功')
i.name = input('请输入要修改的姓名')
i.gender = input('请输入修改性别')
i.tel = input('请输入修改的电话号码')
break
else:
print('查无此人')
def search_studnet(self):
# print('查询学员信息')
search_name = input('请输入要修改学员的信息')
for i in self.student_list:
if i.name == search_name:
print('查找成功')
print(f'name:{i.name}\tgender:{i.gender}\ttel:{i.tel}\t')
break
else:
print('查无此人')
def show_stdunet(self):
if len(self.student_list) == 0:
print('Eor! Not Data ')
else:
print(f'name:\tgender:\ttel:')
for i in self.student_list:
print(f'{i.name}\t{i.gender}\t{i.tel}')
def save_student(self):
# 写入文件是字典 ****
f = open('student.data', 'w')
new_list = [i.__dict__ for i in self.student_list] # 写入是字典属性
# print(new_list)
f.write(str(new_list))
f.close()
def load_stdunet(self):
try:
f = open('student.data', 'r')
except:
f = open('student.data', 'w')
else:
data = f.read()
new_list = eval(data) # 字符串转字典
self.student_list = [Student(i['name'], i['gender'], i['tel']) for i in new_list]
finally:
f.close()
主函数调用
命名:main,py
from manageSystem import *
if __name__ == '__main__':
stduent_manmage = StudentManage()
stduent_manmage.run()
运行图式
非常简单的一个小程序,但是包括Python基本语法,大家一起学习交流!