目标
- 应用:学员管理系统
- 递归
- lambda表达式
- 高阶函数
一,应用学员管理系统
1.1系统简介
需求:进入系统显示系统功能界面,功能如下:
- 添加学员
- 删除学员
- 修改学员信息
- 查询学员信息
- 显示学院信息
- 退出系统
1.2步骤分析
def info_print():
print('请选择如下功能:----------------')
print('1:添加学员')
print('2: 删除学员')
print('3: 修改学员信息')
print('4: 查询学员信息')
print('5: 显示所有学员信息')
print('6: 退出系统')
print('-'*20)
info=[]
#添加学员
def add_info():
"""添加学员函数"""
new_id = input('请输入学号')
new_name=input('请输入姓名')
new_tel = input('请输入电话')
#声明info全局变量
global info
#检查用户得名字是否存在,存在则报错显示
for i in info:
if new_name==i['name']:
print('用户存在')
return
info_dict={}
info_dict['id']=new_id
info_dict['name']=new_name
info_dict['tel']=new_tel
info.append(info_dict)
print(info)
def del_info():
"""删除学员信息"""
del_name=input('请要输出删除的学员的名字')
global info
#判断删除的名字是否存在,存在删除,不存在报错
for i in info:
if del_name==i['name']:
info.remove(i)
break
else:
print('该学员不存在')
print(info)
def modif_info():
"""修改学员"""
modif_name=input('请要输出修改的学员的名字')
#查找学员是否存在,存在修该学员信息,否则报错
for i in info:
if modif_name==i['name']:
i['tel']=input('请输入新的手机号')
break
else:
print('该学员不存在')
print(info)
def seach_info():
seach_name = input('请要输出修改的学员的名字')
# 查找学员是否存在,存在修该学员信息,否则报错
global info
for i in info:
if seach_name == i['name']:
print('该学院的信息如下')
print(f"该学员的id{i['id']},姓名{i['name']},{i['tel']}")
break
else:
print('该学员不存在')
print(info)
def print_all():
print('学号\t姓名\t手机号')
for i in info:
print(f"{i['id']}\t{i['name']}\t{i['tel']}")
while True:
#显示功能界面
info_print()
#用户输入功能序号
user_num=int(input('请输入功能序号'))
#按照用户输入得序号,执行不同功能
# 根据用户输入的序号执行不同的功能
if user_num == 1:
# 添加学员
print('添加学员')
add_info()
elif user_num == 2:
# 删除学员
print('删除学员')
del_info()
elif user_num == 3:
# 修改学员信息
print('修改学员信息')
modif_info()
elif user_num == 4:
# 查询学员信息
print('查询学员信息')
seach_info()
elif user_num == 5:
# 显示学员信息
print('显示所有学员信息')
print_all()
elif user_num == 6:
# 退出系统
exit_flag=input('确定要退出吗?yes or no')
if exit_flag=='yes':
print('退出系统')
break
else:
print('请输入1-6之间得数字')
二、 递归
2.1递归的应用场景
递归是一种编程思想,应用场景:
1在我们日常开发中,如果要遍历一个文件夹下的所有文件,通常使用递归来实现;
2在后续的算法中很多算法都离不开递归,例如快速排序
2.1.1递归的特点
- 函数内部自己调用自己
- 必须有出口
def sum_number(i):
if i==1:
return 1
return i+sum_number(i-1)
resoult=sum_number(3)
print(resoult)