本文已参与「新人创作礼」活动,一起开启掘金创作之路。
函数加强
目标
- 应用:学员管理系统
- 递归
- lambda表达式
- 高阶函数
学员管理系统
系统简介
需求:进入系统显示系统功能界面,功能如下:
- 添加学员
- 删除学员
- 修改学员信息
- 查询学员信息
- 显示所有学员信息
- 退出系统
共六个功能
步骤分析
- 显示功能界面
- 用户输入功能序号
- 根据用户输入的功能序号,执行不同的功能函数
- 定义函数
- 调用函数
需求实现
#1.定义功能界面函数
def info_print():
print('请选着功能')
print('—'*20)
print('1.添加学员')
print('2.删除学员')
print('3.修改学员信息')
print('4.查询学员信息')
print('5.显示所有学员信息 ')
print('6.退出系统')
print('—'*20)
def info_xiugai():
print('1.修改学号')
print('2.修改姓名')
print('3.修改年龄')
print('4.修改性别')
print('5.修改班级')
info = []
#添加学员信息
def tianjia(b,c,d,e,f):
#声明一个全局info
global info
#判断用户输入的姓名是否重复
for i in info:
if c==i['name']:
print('此用户此存在')
#return中断执行函数后面代码
return
#准备一个空字典
info_dict={}
#字典新增数据
info_dict['id']=b
info_dict['name']=c
info_dict['age']=d
info_dict['gender']=e
info_dict['class']=f
#print(info_dict)
#将信息追加到我们的字典里info[]当中
#把info_dict接收的信息追加进去
info.append(info_dict)
print(info)
print('--'*20)
#删除
def shanchu(b):
#声明一个全局
global info
#判断姓名是否存在
#首先遍历info列表
for i in info:
#条件判断用户输入用户名在列表中是否存在的
if b==i['name']:
#存在的话就删除掉
info.remove(i)
#当列表中有用户输入的用户名就会删除该用户名称,执行后执行break,break是终止本次的for循环遍历
break
#当用户输入的info列表中不存在就输出学员不存在
else:
print('该学员不存在')
#修改
def xiugai(q):
idid=int(input('请输入学号'))
#声明一个全局
global info
# info_xiugai()
for i in info:
if idid == i['id']:
info_xiugai()
gaigai = int(input('请选择功能序号'))
if gaigai == 1:
i['id'] = input('新学号:')
elif gaigai == 2:
i['name'] = input('新名字:')
elif gaigai == 3:
i['age'] = input('新年龄:')
elif gaigai == 4:
i['gender'] = input('新性别:')
elif gaigai == 5:
i['class'] = input('新班级:')
else:
print('该学员不存在')
print(info)
# i['id']=input('请输入新的学号')
# elif c==i['name']:
# i['name']=input('请输入新的姓名')
# break
# else:
# print('该学员不存在')
#
# #elif c==i['name']:
# #i['name']=input('请输入新的姓名')
# #break
#
# print(info)
def chaxun():
xing=input('请输入你查询的学员名字')
global info
for iiii in info:
if xing == iiii['name']:
print('查找的学员信如下')
print('-'*20)
print(f"该学员的学号是:{iiii['id']},姓名是:{iiii['name']},年龄是:{iiii['age']}.性别是:{iiii['gender']}.班级是:{iiii['class']}")
break
else:
print('该学员不存在')
def xianshi():
#\t进行数据对齐更美观
print('学号\t姓名\t年龄\t性别\t班级')
#循环遍历info
for iiiii in info:
print(f'{iiiii["id"]},\t{iiiii["name"]},\t{iiiii["age"]},\t{iiiii["gender"]},\t{iiiii["class"]}')
def tuichu():
tuituitui = input("你是否要退出当前操作系统?yes or no")
if tuituitui == 'yes':
exit()
#4按照用户输入的功能序号,执行不同的功能函数
#5系统需要循环使用,直到用户输入6,才真正的退出去
#while True:就是这个功能了
while True:
info_print()
a=int(input('请选择功能序号'))
if a==1:
print('添加')
b=int(input('请输入学号'))
c=input('请输入姓名')
d=int(input('请输入年龄'))
e=input('请输入性别')
f=int(input('请输入班级'))
print('-'*20)
tianjia(b,c,d,e,f)
elif a==2:
print('删除')
b=input('请输入要删除学员的姓名')
print('-'*20)
shanchu(b)
elif a == 3:
print('修改')
print('-'*20)
info_xiugai()
print('-'*20)
q=int(input('请输入修改的功能序列号'))
xiugai(q)
elif a == 4:
print('查询')
chaxun()
elif a == 5:
print('显示所有')
xianshi()
elif a==6:
print('退出')
tuichu()
else:
print('输入功能序号错误')
\