目标
- 应用:学员管理系统
- 递归
- 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)