day11 课程(函数综合应用:学员管理系统案例 & pass占位符、跳过)
课程:https://www.bilibili.com/video/BV1o4411M71o?spm_id_from=333.788.videopod.episodes&p=204
11.1 函数加强简介
11.1.1 目标
应用:学员管理系统
递归
lambda 表达式
高阶函数
11.2 学员管理系统需求和步骤分析
11.2.1 系统简介
需求:进入系统显示系统功能界面,功能如下:
1.添加学员
2.删除学员
3.修改学员信息
4.查询学员信息
5.显示所有学员信息
6.退出系统
系统共6个功能,用户根据自己需求选取
11.2.2 步骤分析
1.显示功能界面
2.用户输入功能序号
3.根据用户输入的功能序号,执行不同的功能(函数)
3.1 定义函数
3.2 调用函数
11.3 学员管理系统框架搭建
# 定义功能界面函数 def info_print(): # 定义函数 print("请选择功能------------") print("1.添加学员") print("2.删除学员") print("3.修改学员信息") print("4.查询学员信息") print("5.显示所有学员信息") print("6.退出系统") print("-" * 20) # 系统功能需要循环使用, 直到用户输入 6, 才退出系统 while True: # 1.显示功能界面 info_print() # 调用函数 # 2.用户输入功能序号 user_num = int(input("请输入功能序号: ")) # 输入的是字符串,转换成数字类型 # 3.按照用户输入的功能序号, 执行不同的功能(函数) # 输入序号1 执行添加学员, 输入序号2 执行删除学员... 使用多重判断 if user_num == 1: print("添加学员") elif user_num == 2: print("删除学员") elif user_num == 3: print("修改学员信息") elif user_num == 4: print("查询学员信息") elif user_num == 5: print("显示所有学员信息") elif user_num == 6: print("退出系统")
11.4 代码调优
工作中,需要根据实际需求调优代码
1.用户选择系统功能的代码需要循环使用,直到用户主动退出系统 添加 while true
2.如果用户输入 1-6 以外的数字,需要提示用户 else
# 定义功能界面函数 def info_print(): # 定义函数 print("请选择功能------------") print("1.添加学员") print("2.删除学员") print("3.修改学员信息") print("4.查询学员信息") print("5.显示所有学员信息") print("6.退出系统") print("-" * 20) # 系统功能需要循环使用, 直到用户输入 6, 才退出系统 while True: # 1.显示功能界面 info_print() # 调用函数 # 2.用户输入功能序号 user_num = int(input("请输入功能序号: ")) # 输入的是字符串,转换成数字类型 # 3.按照用户输入的功能序号, 执行不同的功能(函数) # 输入序号1 执行添加学员, 输入序号2 执行删除学员... 使用多重判断 if user_num == 1: print("添加学员") elif user_num == 2: print("删除学员") elif user_num == 3: print("修改学员信息") elif user_num == 4: print("查询学员信息") elif user_num == 5: print("显示所有学员信息") elif user_num == 6: print("退出系统") else: print("输入的功能序号有误!!!")
11.5 学员管理系统数据形式的分析
所有功能函数都是操作学员信息,所以存储学员信息应该是一个 全局变量,数据类型为 字典,存储所有学员使用 列表
# 格式: info = [{}, {}, ....]
11.6 添加学员功能分析
需求分析:
1.接收用户输入学员信息,并保存
2.判断是否添加学员信息
2.1 如果学员姓名已经存在,则报错提示
2.2 如果学员姓名不存在,则准备空字典,将用户输入的数据追加到字典,再列表追加字典数据
3.对应的 if 条件成立的位置调用该函数
11.7 添加学员之用户输入
# 定义功能界面函数 def info_print(): # 定义函数 print("请选择功能------------") print("1.添加学员") print("2.删除学员") print("3.修改学员信息") print("4.查询学员信息") print("5.显示所有学员信息") print("6.退出系统") print("-" * 20) # 准备一个空列表, 存储所有学员的信息 info = [] # 添加学员信息的函数 def add_info(): """ 添加学员函数 """ # 1.1 用户输入: 学号 姓名 手机号 new_id = input("请输入学号: ") new_name = input("请输入姓名: ") new_tel = input("请输入手机号: ") # 系统功能需要循环使用, 直到用户输入 6, 才退出系统 while True: # 1.显示功能界面 info_print() # 调用函数 # 2.用户输入功能序号 user_num = int(input("请输入功能序号: ")) # 输入的是字符串,转换成数字类型 # 3.按照用户输入的功能序号, 执行不同的功能(函数) # 输入序号1 执行添加学员, 输入序号2 执行删除学员... 使用多重判断 if user_num == 1: # print("添加学员") add_info() elif user_num == 2: print("删除学员") elif user_num == 3: print("修改学员信息") elif user_num == 4: print("查询学员信息") elif user_num == 5: print("显示所有学员信息") elif user_num == 6: print("退出系统") else: print("输入的功能序号有误!!!") ------------------------------------------------ 执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day11\01.学员管理系统.py 请选择功能------------ 1.添加学员 2.删除学员 3.修改学员信息 4.查询学员信息 5.显示所有学员信息 6.退出系统 -------------------- 请输入功能序号: 1 请输入学号: 1 请输入姓名: aa 请输入手机号: 111 请选择功能------------ 1.添加学员 2.删除学员 3.修改学员信息 4.查询学员信息 5.显示所有学员信息 6.退出系统 -------------------- 请输入功能序号:
11.8 添加学员之新增数据
# 定义功能界面函数 def info_print(): # 定义函数 print("请选择功能------------") print("1.添加学员") print("2.删除学员") print("3.修改学员信息") print("4.查询学员信息") print("5.显示所有学员信息") print("6.退出系统") print("-" * 20) # 准备一个空列表, 存储所有学员的信息 info = [] # 添加学员信息的函数 def add_info(): """ 添加学员函数 """ # 1.1 用户输入: 学号 姓名 手机号 new_id = input("请输入学号: ") new_name = input("请输入姓名: ") new_tel = input("请输入手机号: ") # 1.2 判断是否添加这个学员: 如果学员姓名已经存在报错提示, 如果姓名不存在则添加数据 global info # 声明全局变量, 其他函数 删除 查看 都需要使用 info # 1.2.1 先准备新增的代码, 再准备判断的代码 info_dict = {} info_dict['id'] = new_id info_dict['name'] = new_name info_dict['tel'] = new_tel # print(info_dict) # 测试可以打印 {'id': '1', 'name': 'a', 'tel': '111'} info.append(info_dict) # 字典追加到列表 print(info) # 测试添加 [{'id': '1', 'name': 'a', 'tel': '111'}, {'id': '2', 'name': 'b', 'tel': '222'}] 可以写入 # 系统功能需要循环使用, 直到用户输入 6, 才退出系统 while True: # 1.显示功能界面 info_print() # 调用函数 # 2.用户输入功能序号 user_num = int(input("请输入功能序号: ")) # 输入的是字符串,转换成数字类型 # 3.按照用户输入的功能序号, 执行不同的功能(函数) # 输入序号1 执行添加学员, 输入序号2 执行删除学员... 使用多重判断 if user_num == 1: # print("添加学员") add_info() elif user_num == 2: print("删除学员") elif user_num == 3: print("修改学员信息") elif user_num == 4: print("查询学员信息") elif user_num == 5: print("显示所有学员信息") elif user_num == 6: print("退出系统") else: print("输入的功能序号有误!!!") ------------------------------------------------ 执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day11\01.学员管理系统.py 请选择功能------------ 1.添加学员 2.删除学员 3.修改学员信息 4.查询学员信息 5.显示所有学员信息 6.退出系统 -------------------- 请输入功能序号: 1 请输入学号: 1 请输入姓名: a 请输入手机号: 111 [{'id': '1', 'name': 'a', 'tel': '111'}] 请选择功能------------ 1.添加学员 2.删除学员 3.修改学员信息 4.查询学员信息 5.显示所有学员信息 6.退出系统 -------------------- 请输入功能序号: 1 请输入学号: 2 请输入姓名: b 请输入手机号: 222 [{'id': '1', 'name': 'a', 'tel': '111'}, {'id': '2', 'name': 'b', 'tel': '222'}]
11.9 添加学员之重名提示
# 定义功能界面函数 def info_print(): # 定义函数 print("请选择功能------------") print("1.添加学员") print("2.删除学员") print("3.修改学员信息") print("4.查询学员信息") print("5.显示所有学员信息") print("6.退出系统") print("-" * 20) # 准备一个空列表, 存储所有学员的信息 info = [] # 添加学员信息的函数 def add_info(): """ 添加学员函数 """ # 1.1 用户输入: 学号 姓名 手机号 new_id = input("请输入学号: ") new_name = input("请输入姓名: ") new_tel = input("请输入手机号: ") # 1.2 判断是否添加这个学员: 如果学员姓名已经存在报错提示, 如果姓名不存在则添加数据 global info # 声明全局变量, 其他函数 删除 查看 都需要使用 info # 1.2.2 添加前应该先判断, 判断输入姓名已存在,提示用户存在 for i in info: # 遍历列表中的字典 if new_name == i['name']: # 判断写入的 name 与 字典中存在的 name 是否有重复 print("此用户已经存在!!!") return # 退出当前添加函数, 下面写入字典和列表将不再执行 # 1.2.1 先准备新增的代码, 再准备判断的代码 info_dict = {} info_dict['id'] = new_id info_dict['name'] = new_name info_dict['tel'] = new_tel # print(info_dict) # 测试可以打印 {'id': '1', 'name': 'a', 'tel': '111'} info.append(info_dict) print(info) # 测试添加 [{'id': '1', 'name': 'a', 'tel': '111'}, {'id': '2', 'name': 'b', 'tel': '222'}] 可以写入 # 系统功能需要循环使用, 直到用户输入 6, 才退出系统 while True: # 1.显示功能界面 info_print() # 调用函数 # 2.用户输入功能序号 user_num = int(input("请输入功能序号: ")) # 输入的是字符串,转换成数字类型 # 3.按照用户输入的功能序号, 执行不同的功能(函数) # 输入序号1 执行添加学员, 输入序号2 执行删除学员... 使用多重判断 if user_num == 1: # print("添加学员") add_info() elif user_num == 2: print("删除学员") elif user_num == 3: print("修改学员信息") elif user_num == 4: print("查询学员信息") elif user_num == 5: print("显示所有学员信息") elif user_num == 6: print("退出系统") else: print("输入的功能序号有误!!!") ------------------------------------------------ 执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day11\01.学员管理系统.py 请选择功能------------ 1.添加学员 2.删除学员 3.修改学员信息 4.查询学员信息 5.显示所有学员信息 6.退出系统 -------------------- 请输入功能序号: 1 请输入学号: 1 请输入姓名: aa 请输入手机号: 111 [{'id': '1', 'name': 'aa', 'tel': '111'}] 请选择功能------------ 1.添加学员 2.删除学员 3.修改学员信息 4.查询学员信息 5.显示所有学员信息 6.退出系统 -------------------- 请输入功能序号: 1 请输入学号: 2 请输入姓名: aa 请输入手机号: 222 此用户已经存在!!!
11.10 删除学员思路分析
需求分析:按用户输入的学员姓名进行删除
1. 用户输入目标学员姓名
2.检查这个学员是否存在
2.1 如果存在,则列表删除这个数据
2.2 如果不存在,则提示“该用户不存在”
3.对应的 if 条件成立的位置调用该函数
11.11 删除学员代码实现
# 定义功能界面函数 def info_print(): # 定义函数 print("请选择功能------------") print("1.添加学员") print("2.删除学员") print("3.修改学员信息") print("4.查询学员信息") print("5.显示所有学员信息") print("6.退出系统") print("-" * 20) # 准备一个空列表, 存储所有学员的信息 info = [] # 添加学员信息的函数 def add_info(): """ 添加学员函数 """ # 1.1 用户输入: 学号 姓名 手机号 new_id = input("请输入学号: ") new_name = input("请输入姓名: ") new_tel = input("请输入手机号: ") # 1.2 判断是否添加这个学员: 如果学员姓名已经存在报错提示, 如果姓名不存在则添加数据 global info # 声明全局变量, 其他函数 删除 查看 都需要使用 info # 1.2.2 添加前应该先判断, 判断输入姓名已存在,提示用户存在 for i in info: # 遍历列表中的字典 if new_name == i['name']: # 判断写入的 name 与 字典中存在的 name 是否有重复 print("此用户已经存在!!!") return # 退出当前添加函数, 下面写入字典和列表将不再执行 # 1.2.1 先准备新增的代码, 再准备判断的代码 info_dict = {} info_dict['id'] = new_id info_dict['name'] = new_name info_dict['tel'] = new_tel # print(info_dict) # 测试可以打印 {'id': '1', 'name': 'a', 'tel': '111'} info.append(info_dict) print(info) # 测试添加 [{'id': '1', 'name': 'a', 'tel': '111'}, {'id': '2', 'name': 'b', 'tel': '222'}] 可以写入 # 删除学员信息的函数 def del_info(): """ 删除学员 """ # 2.1 用户输入要删除的学员的姓名 del_name = input("请输入要删除的学员的姓名: ") # 2.2 判断学员是否存在, 存在则删除, 不存在则提示 # 2.2.1 声明 info 是全局变量 global info # 因为删除是要全局生效的 # 2.2.2 遍历列表 for i in info: # 2.2.3 判断学员是否存在, 存在执行删除(列表里面的字典) 加 break 不存在提示 if del_name == i['name']: info.remove(i) # 输入的名字存在, 则删除列表中存在的字典 break # 因为新增数据中有对重复名字的判断, 所以只要存在名字, 即不再向后 for 循环 else: # for 循环正常结束,执行的代码, 即:输入的名称在列表中不存在 print("该学员不存在!!!") print(info) # 系统功能需要循环使用, 直到用户输入 6, 才退出系统 while True: # 1.显示功能界面 info_print() # 调用函数 # 2.用户输入功能序号 user_num = int(input("请输入功能序号: ")) # 输入的是字符串,转换成数字类型 # 3.按照用户输入的功能序号, 执行不同的功能(函数) # 输入序号1 执行添加学员, 输入序号2 执行删除学员... 使用多重判断 if user_num == 1: # print("添加学员") add_info() elif user_num == 2: # print("删除学员") del_info() elif user_num == 3: print("修改学员信息") elif user_num == 4: print("查询学员信息") elif user_num == 5: print("显示所有学员信息") elif user_num == 6: print("退出系统") else: print("输入的功能序号有误!!!") ------------------------------------------------ 执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day11\01.学员管理系统.py 请选择功能------------ 1.添加学员 2.删除学员 3.修改学员信息 4.查询学员信息 5.显示所有学员信息 6.退出系统 -------------------- 请输入功能序号: 1 请输入学号: 1 请输入姓名: aa 请输入手机号: 111 [{'id': '1', 'name': 'aa', 'tel': '111'}] 请选择功能------------ 1.添加学员 2.删除学员 3.修改学员信息 4.查询学员信息 5.显示所有学员信息 6.退出系统 -------------------- 请输入功能序号: 2 请输入要删除的学员的姓名: aaa 该学员不存在!!! [{'id': '1', 'name': 'aa', 'tel': '111'}] 请选择功能------------ 1.添加学员 2.删除学员 3.修改学员信息 4.查询学员信息 5.显示所有学员信息 6.退出系统 -------------------- 请输入功能序号: 2 请输入要删除的学员的姓名: aa [] 请选择功能------------ 1.添加学员 2.删除学员 3.修改学员信息 4.查询学员信息 5.显示所有学员信息 6.退出系统 -------------------- 请输入功能序号:
11.12 修改学员思路分析
需求分析:
1.用户输入目标学员姓名
2.检查这个学员是否存在
2.1 如果存在,则修改这位学员的信息,例如手机号
2.2 如果不存在,则报错
3.对应的 if 条件成立的位置调用该函数
11.13 修改学员代码实现
# 定义功能界面函数 def info_print(): # 定义函数 print("请选择功能------------") print("1.添加学员") print("2.删除学员") print("3.修改学员信息") print("4.查询学员信息") print("5.显示所有学员信息") print("6.退出系统") print("-" * 20) # 准备一个空列表, 存储所有学员的信息 info = [] # 添加学员信息的函数 def add_info(): """ 添加学员函数 """ # 1.1 用户输入: 学号 姓名 手机号 new_id = input("请输入学号: ") new_name = input("请输入姓名: ") new_tel = input("请输入手机号: ") # 1.2 判断是否添加这个学员: 如果学员姓名已经存在报错提示, 如果姓名不存在则添加数据 global info # 声明全局变量, 其他函数 删除 查看 都需要使用 info # 1.2.2 添加前应该先判断, 判断输入姓名已存在,提示用户存在 for i in info: # 遍历列表中的字典 if new_name == i['name']: # 判断写入的 name 与 字典中存在的 name 是否有重复 print("此用户已经存在!!!") return # 退出当前添加函数, 下面写入字典和列表将不再执行 # 1.2.1 先准备新增的代码, 再准备判断的代码 info_dict = {} info_dict['id'] = new_id info_dict['name'] = new_name info_dict['tel'] = new_tel # print(info_dict) # 测试可以打印 {'id': '1', 'name': 'a', 'tel': '111'} info.append(info_dict) print(info) # 测试添加 [{'id': '1', 'name': 'a', 'tel': '111'}, {'id': '2', 'name': 'b', 'tel': '222'}] 可以写入 # 删除学员信息的函数 def del_info(): """ 删除学员 """ # 2.1 用户输入要删除的学员的姓名 del_name = input("请输入要删除的学员的姓名: ") # 2.2 判断学员是否存在, 存在则删除, 不存在则提示 # 2.2.1 声明 info 是全局变量 global info # 因为删除是要全局生效的 # 2.2.2 遍历列表 for i in info: # 2.2.2 判断学员是否存在, 存在执行删除(列表里面的字典) 加 break, 不存在提示 if del_name == i['name']: info.remove(i) # 输入的名字存在, 则删除列表中存在的字典 break # 因为新增数据中有对重复名字的判断, 所以只要存在名字, 即不再向后 for 循环 else: # for 循环正常结束,执行的代码, 即:输入的名称在列表中不存在 print("该学员不存在!!!") print(info) # 修改学员信息的函数 def modify_info(): """ 修改学员信息 """ # 3.1 用户输入想要修改的学员的姓名 modify_name = input("请输入要修改的学员的姓名: ") # 3.2 判断学员信息是否存在, 存在则修改手机号, 不存在则提示 # 3.2.1 声明 info 是全局 global info # 3.2.2 遍历列表 for i in info: # 3.2.3 判断学员是否存在, 存在执行修改(列表里面的字典) 加 break, 不存在提示 if modify_name == i['name']: # 将 tel 这个key 修改值, 并终止此循环 i['tel'] = input("请输入您要更改的手机号:") break else: print("该学员不存在!!!") print(info) # 系统功能需要循环使用, 直到用户输入 6, 才退出系统 while True: # 1.显示功能界面 info_print() # 调用函数 # 2.用户输入功能序号 user_num = int(input("请输入功能序号: ")) # 输入的是字符串,转换成数字类型 # 3.按照用户输入的功能序号, 执行不同的功能(函数) # 输入序号1 执行添加学员, 输入序号2 执行删除学员... 使用多重判断 if user_num == 1: # print("添加学员") add_info() elif user_num == 2: # print("删除学员") del_info() elif user_num == 3: # print("修改学员信息") modify_info() elif user_num == 4: print("查询学员信息") elif user_num == 5: print("显示所有学员信息") elif user_num == 6: print("退出系统") else: print("输入的功能序号有误!!!") ------------------------------------------------ 执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day11\01.学员管理系统.py 请选择功能------------ 1.添加学员 2.删除学员 3.修改学员信息 4.查询学员信息 5.显示所有学员信息 6.退出系统 -------------------- 请输入功能序号: 1 请输入学号: 1 请输入姓名: aa 请输入手机号: 111 [{'id': '1', 'name': 'aa', 'tel': '111'}] 请选择功能------------ 1.添加学员 2.删除学员 3.修改学员信息 4.查询学员信息 5.显示所有学员信息 6.退出系统 -------------------- 请输入功能序号: 3 请输入要修改的学员的姓名: aa 请输入您要更改的手机号:123 [{'id': '1', 'name': 'aa', 'tel': '123'}] 请选择功能------------ 1.添加学员 2.删除学员 3.修改学员信息 4.查询学员信息 5.显示所有学员信息 6.退出系统 -------------------- 请输入功能序号: 3 请输入要修改的学员的姓名: aaa 该学员不存在!!! [{'id': '1', 'name': 'aa', 'tel': '123'}] 请选择功能------------ 1.添加学员 2.删除学员 3.修改学员信息 4.查询学员信息 5.显示所有学员信息 6.退出系统 --------------------
11.14 查询学员思路分析
需求分析:
1.用户输入目标学员姓名
2.检查学员是否存在
2.1 如果存在,则显示这个学员的信息
2.2 如果不存在,则报错提示
3.对应的 if 条件成立的位置调用该函数
11.15 查询学员代码实现
# 定义功能界面函数 def info_print(): # 定义函数 print("请选择功能------------") print("1.添加学员") print("2.删除学员") print("3.修改学员信息") print("4.查询学员信息") print("5.显示所有学员信息") print("6.退出系统") print("-" * 20) # 准备一个空列表, 存储所有学员的信息 info = [] # 添加学员信息的函数 def add_info(): """ 添加学员函数 """ # 1.1 用户输入: 学号 姓名 手机号 new_id = input("请输入学号: ") new_name = input("请输入姓名: ") new_tel = input("请输入手机号: ") # 1.2 判断是否添加这个学员: 如果学员姓名已经存在报错提示, 如果姓名不存在则添加数据 global info # 声明全局变量, 其他函数 删除 查看 都需要使用 info # 1.2.2 添加前应该先判断, 判断输入姓名已存在,提示用户存在 for i in info: # 遍历列表中的字典 if new_name == i['name']: # 判断写入的 name 与 字典中存在的 name 是否有重复 print("此用户已经存在!!!") return # 退出当前添加函数, 下面写入字典和列表将不再执行 # 1.2.1 先准备新增的代码, 再准备判断的代码 info_dict = dict() info_dict['id'] = new_id info_dict['name'] = new_name info_dict['tel'] = new_tel # print(info_dict) # 测试可以打印 {'id': '1', 'name': 'a', 'tel': '111'} info.append(info_dict) print(info) # 测试添加 [{'id': '1', 'name': 'a', 'tel': '111'}, {'id': '2', 'name': 'b', 'tel': '222'}] 可以写入 # 删除学员信息的函数 def del_info(): """ 删除学员 """ # 2.1 用户输入要删除的学员的姓名 del_name = input("请输入要删除的学员的姓名: ") # 2.2 判断学员是否存在, 存在则删除, 不存在则提示 # 2.2.1 声明 info 是全局变量 global info # 因为删除是要全局生效的 # 2.2.2 遍历列表 for i in info: # 2.2.2 判断学员是否存在, 存在执行删除(列表里面的字典) 加 break, 不存在提示 if del_name == i['name']: info.remove(i) # 输入的名字存在, 则删除列表中存在的字典 break # 因为新增数据中有对重复名字的判断, 所以只要存在名字, 即不再向后 for 循环 else: # for 循环正常结束,执行的代码, 即:输入的名称在列表中不存在 print("该学员不存在!!!") print(info) # 修改学员信息的函数 def modify_info(): """ 修改学员信息 """ # 3.1 用户输入想要修改的学员的姓名 modify_name = input("请输入要修改的学员的姓名: ") # 3.2 判断学员信息是否存在, 存在则修改手机号, 不存在则提示 # 3.2.1 声明 info 是全局 global info # 3.2.2 遍历列表 for i in info: # 3.2.3 判断学员是否存在, 存在执行修改(列表里面的字典) 加 break, 不存在提示 if modify_name == i['name']: # 将 tel 这个key 修改值, 并终止此循环 i['tel'] = input("请输入您要更改的手机号:") break else: print("该学员不存在!!!") print(info) # 查询学员信息的函数 def search_info(): """ 查询学员信息 """ # 4.1 用户输入目标学员姓名 search_name = input("请输入要查询的学员的姓名: ") # 4.2 判断学员信息是否存在, 存在则打印信息, 不存在则提示 # 4.2.1 声明 info 是全局 global info # 4.2.2 遍历列表 for i in info: # 4.2.3 判断学员是否存在, 存在打印信息(列表里面的字典) 加 break, 不存在提示 if search_name == i['name']: print("查询到的学员信息如下---------") print(f"学员的学号是 {i['id']},姓名是 {i['name']}, 手机号是 {i['tel']}") # f 字符串的引号和内部的字典引号要区分, 不能相同 break else: print("该学员不存在!!!") # 系统功能需要循环使用, 直到用户输入 6, 才退出系统 while True: # 1.显示功能界面 info_print() # 调用函数 # 2.用户输入功能序号 user_num = int(input("请输入功能序号: ")) # 输入的是字符串,转换成数字类型 # 3.按照用户输入的功能序号, 执行不同的功能(函数) # 输入序号1 执行添加学员, 输入序号2 执行删除学员... 使用多重判断 if user_num == 1: # print("添加学员") add_info() elif user_num == 2: # print("删除学员") del_info() elif user_num == 3: # print("修改学员信息") modify_info() elif user_num == 4: # print("查询学员信息") search_info() elif user_num == 5: print("显示所有学员信息") elif user_num == 6: print("退出系统") else: print("输入的功能序号有误!!!") ------------------------------------------------ 执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day11\01.学员管理系统.py 请选择功能------------ 1.添加学员 2.删除学员 3.修改学员信息 4.查询学员信息 5.显示所有学员信息 6.退出系统 -------------------- 请输入功能序号: 1 请输入学号: 1 请输入姓名: aa 请输入手机号: 111 [{'id': '1', 'name': 'aa', 'tel': '111'}] 请选择功能------------ 1.添加学员 2.删除学员 3.修改学员信息 4.查询学员信息 5.显示所有学员信息 6.退出系统 -------------------- 请输入功能序号: 4 请输入要查询的学员的姓名: aa 查询到的学员信息如下--------- 学员的学号是 1,姓名是 aa, 手机号是 111 请选择功能------------ 1.添加学员 2.删除学员 3.修改学员信息 4.查询学员信息 5.显示所有学员信息 6.退出系统 -------------------- 请输入功能序号: 4 请输入要查询的学员的姓名: aaa 该学员不存在!!! 请选择功能------------
11.16 显示所有学员信息
需求分析:打印所有学员信息
# 定义功能界面函数 def info_print(): # 定义函数 print("请选择功能------------") print("1.添加学员") print("2.删除学员") print("3.修改学员信息") print("4.查询学员信息") print("5.显示所有学员信息") print("6.退出系统") print("-" * 20) # 准备一个空列表, 存储所有学员的信息 info = [] # 添加学员信息的函数 def add_info(): """ 添加学员函数 """ # 1.1 用户输入: 学号 姓名 手机号 new_id = input("请输入学号: ") new_name = input("请输入姓名: ") new_tel = input("请输入手机号: ") # 1.2 判断是否添加这个学员: 如果学员姓名已经存在报错提示, 如果姓名不存在则添加数据 global info # 声明全局变量, 其他函数 删除 查看 都需要使用 info # 1.2.2 添加前应该先判断, 判断输入姓名已存在,提示用户存在 for i in info: # 遍历列表中的字典 if new_name == i['name']: # 判断写入的 name 与 字典中存在的 name 是否有重复 print("此用户已经存在!!!") return # 退出当前添加函数, 下面写入字典和列表将不再执行 # 1.2.1 先准备新增的代码, 再准备判断的代码 info_dict = dict() info_dict['id'] = new_id info_dict['name'] = new_name info_dict['tel'] = new_tel # print(info_dict) # 测试可以打印 {'id': '1', 'name': 'a', 'tel': '111'} info.append(info_dict) print(info) # 测试添加 [{'id': '1', 'name': 'a', 'tel': '111'}, {'id': '2', 'name': 'b', 'tel': '222'}] 可以写入 # 删除学员信息的函数 def del_info(): """ 删除学员 """ # 2.1 用户输入要删除的学员的姓名 del_name = input("请输入要删除的学员的姓名: ") # 2.2 判断学员是否存在, 存在则删除, 不存在则提示 # 2.2.1 声明 info 是全局变量 global info # 因为删除是要全局生效的 # 2.2.2 遍历列表 for i in info: # 2.2.2 判断学员是否存在, 存在执行删除(列表里面的字典) 加 break, 不存在提示 if del_name == i['name']: info.remove(i) # 输入的名字存在, 则删除列表中存在的字典 break # 因为新增数据中有对重复名字的判断, 所以只要存在名字, 即不再向后 for 循环 else: # for 循环正常结束,执行的代码, 即:输入的名称在列表中不存在 print("该学员不存在!!!") print(info) # 修改学员信息的函数 def modify_info(): """ 修改学员信息 """ # 3.1 用户输入想要修改的学员的姓名 modify_name = input("请输入要修改的学员的姓名: ") # 3.2 判断学员信息是否存在, 存在则修改手机号, 不存在则提示 # 3.2.1 声明 info 是全局 global info # 3.2.2 遍历列表 for i in info: # 3.2.3 判断学员是否存在, 存在执行修改(列表里面的字典) 加 break, 不存在提示 if modify_name == i['name']: # 将 tel 这个key 修改值, 并终止此循环 i['tel'] = input("请输入您要更改的手机号:") break else: print("该学员不存在!!!") print(info) # 查询学员信息的函数 def search_info(): """ 查询学员信息 """ # 4.1 用户输入目标学员姓名 search_name = input("请输入要查询的学员的姓名: ") # 4.2 判断学员信息是否存在, 存在则打印信息, 不存在则提示 # 4.2.1 声明 info 是全局 global info # 4.2.2 遍历列表 for i in info: # 4.2.3 判断学员是否存在, 存在打印信息(列表里面的字典) 加 break, 不存在提示 if search_name == i['name']: print("查询到的学员信息如下---------") print(f"学员的学号是 {i['id']},姓名是 {i['name']}, 手机号是 {i['tel']}") # f 字符串的引号和内部的字典引号要区分, 不能相同 break else: print("该学员不存在!!!") # 查询所有学员信息的函数 def print_all(): """ 显示所有学员信息 """ # 5.1 打印提示字 print("学号\t姓名\t电话") # 统一使用间隔符 对齐 # 5.2 打印所有学员的数据 for i in info: # 直接循环遍历列表中数据打印 print(f"{i['id']}\t{i['name']}\t{i['tel']}") # 系统功能需要循环使用, 直到用户输入 6, 才退出系统 while True: # 1.显示功能界面 info_print() # 调用函数 # 2.用户输入功能序号 user_num = int(input("请输入功能序号: ")) # 输入的是字符串,转换成数字类型 # 3.按照用户输入的功能序号, 执行不同的功能(函数) # 输入序号1 执行添加学员, 输入序号2 执行删除学员... 使用多重判断 if user_num == 1: # print("添加学员") add_info() elif user_num == 2: # print("删除学员") del_info() elif user_num == 3: # print("修改学员信息") modify_info() elif user_num == 4: # print("查询学员信息") search_info() elif user_num == 5: # print("显示所有学员信息") print_all() elif user_num == 6: print("退出系统") else: print("输入的功能序号有误!!!") ------------------------------------------------ 执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day11\01.学员管理系统.py 请选择功能------------ 1.添加学员 2.删除学员 3.修改学员信息 4.查询学员信息 5.显示所有学员信息 6.退出系统 -------------------- 请输入功能序号: 1 请输入学号: 1 请输入姓名: aa 请输入手机号: 111 [{'id': '1', 'name': 'aa', 'tel': '111'}] 请选择功能------------ 1.添加学员 2.删除学员 3.修改学员信息 4.查询学员信息 5.显示所有学员信息 6.退出系统 -------------------- 请输入功能序号: 1 请输入学号: 2 请输入姓名: bb 请输入手机号: 222 [{'id': '1', 'name': 'aa', 'tel': '111'}, {'id': '2', 'name': 'bb', 'tel': '222'}] 请选择功能------------ 1.添加学员 2.删除学员 3.修改学员信息 4.查询学员信息 5.显示所有学员信息 6.退出系统 -------------------- 请输入功能序号: 5 学号 姓名 电话 1 aa 111 2 bb 222 请选择功能------------
11.17 退出系统
# 定义功能界面函数 def info_print(): # 定义函数 print("请选择功能------------") print("1.添加学员") print("2.删除学员") print("3.修改学员信息") print("4.查询学员信息") print("5.显示所有学员信息") print("6.退出系统") print("-" * 20) # 准备一个空列表, 存储所有学员的信息 info = [] # 添加学员信息的函数 def add_info(): """ 添加学员函数 """ # 1.1 用户输入: 学号 姓名 手机号 new_id = input("请输入学号: ") new_name = input("请输入姓名: ") new_tel = input("请输入手机号: ") # 1.2 判断是否添加这个学员: 如果学员姓名已经存在报错提示, 如果姓名不存在则添加数据 global info # 声明全局变量, 其他函数 删除 查看 都需要使用 info # 1.2.2 添加前应该先判断, 判断输入姓名已存在,提示用户存在 for i in info: # 遍历列表中的字典 if new_name == i['name']: # 判断写入的 name 与 字典中存在的 name 是否有重复 print("此用户已经存在!!!") return # 退出当前添加函数, 下面写入字典和列表将不再执行 # 1.2.1 先准备新增的代码, 再准备判断的代码 info_dict = dict() info_dict['id'] = new_id info_dict['name'] = new_name info_dict['tel'] = new_tel # print(info_dict) # 测试可以打印 {'id': '1', 'name': 'a', 'tel': '111'} info.append(info_dict) print(info) # 测试添加 [{'id': '1', 'name': 'a', 'tel': '111'}, {'id': '2', 'name': 'b', 'tel': '222'}] 可以写入 # 删除学员信息的函数 def del_info(): """ 删除学员 """ # 2.1 用户输入要删除的学员的姓名 del_name = input("请输入要删除的学员的姓名: ") # 2.2 判断学员是否存在, 存在则删除, 不存在则提示 # 2.2.1 声明 info 是全局变量 global info # 因为删除是要全局生效的 # 2.2.2 遍历列表 for i in info: # 2.2.2 判断学员是否存在, 存在执行删除(列表里面的字典) 加 break, 不存在提示 if del_name == i['name']: info.remove(i) # 输入的名字存在, 则删除列表中存在的字典 break # 因为新增数据中有对重复名字的判断, 所以只要存在名字, 即不再向后 for 循环 else: # for 循环正常结束,执行的代码, 即:输入的名称在列表中不存在 print("该学员不存在!!!") print(info) # 修改学员信息的函数 def modify_info(): """ 修改学员信息 """ # 3.1 用户输入想要修改的学员的姓名 modify_name = input("请输入要修改的学员的姓名: ") # 3.2 判断学员信息是否存在, 存在则修改手机号, 不存在则提示 # 3.2.1 声明 info 是全局 global info # 3.2.2 遍历列表 for i in info: # 3.2.3 判断学员是否存在, 存在执行修改(列表里面的字典) 加 break, 不存在提示 if modify_name == i['name']: # 将 tel 这个key 修改值, 并终止此循环 i['tel'] = input("请输入您要更改的手机号:") break else: print("该学员不存在!!!") print(info) # 查询学员信息的函数 def search_info(): """ 查询学员信息 """ # 4.1 用户输入目标学员姓名 search_name = input("请输入要查询的学员的姓名: ") # 4.2 判断学员信息是否存在, 存在则打印信息, 不存在则提示 # 4.2.1 声明 info 是全局 global info # 4.2.2 遍历列表 for i in info: # 4.2.3 判断学员是否存在, 存在打印信息(列表里面的字典) 加 break, 不存在提示 if search_name == i['name']: print("查询到的学员信息如下---------") print(f"学员的学号是 {i['id']},姓名是 {i['name']}, 手机号是 {i['tel']}") # f 字符串的引号和内部的字典引号要区分, 不能相同 break else: print("该学员不存在!!!") # 查询所有学员信息的函数 def print_all(): """ 显示所有学员信息 """ # 5.1 打印提示字 print("学号\t姓名\t电话") # 统一使用间隔符 对齐 # 5.2 打印所有学员的数据 for i in info: # 直接循环遍历列表中数据打印 print(f"{i['id']}\t{i['name']}\t{i['tel']}") # 系统功能需要循环使用, 直到用户输入 6, 才退出系统 while True: # 1.显示功能界面 info_print() # 调用函数 # 2.用户输入功能序号 user_num = int(input("请输入功能序号: ")) # 输入的是字符串,转换成数字类型 # 3.按照用户输入的功能序号, 执行不同的功能(函数) # 输入序号1 执行添加学员, 输入序号2 执行删除学员... 使用多重判断 if user_num == 1: # print("添加学员") add_info() elif user_num == 2: # print("删除学员") del_info() elif user_num == 3: # print("修改学员信息") modify_info() elif user_num == 4: # print("查询学员信息") search_info() elif user_num == 5: # print("显示所有学员信息") print_all() elif user_num == 6: # print("退出系统") exit_flag = input("确定要退出么 yes or no: ") if exit_flag == "yes": break # 终止就近的循环, 如果封装成函数, 有可能是终止 函数的循环 else: print("输入的功能序号有误!!!") ------------------------------------------------ 执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day11\01.学员管理系统.py 请选择功能------------ 1.添加学员 2.删除学员 3.修改学员信息 4.查询学员信息 5.显示所有学员信息 6.退出系统 -------------------- 请输入功能序号: 6 确定要退出么 yes or no: no 请选择功能------------ 1.添加学员 2.删除学员 3.修改学员信息 4.查询学员信息 5.显示所有学员信息 6.退出系统 -------------------- 请输入功能序号: 6 确定要退出么 yes or no: yes Process finished with exit code 0
———————————————————————————————————————————————————————————————————————————
无敌小马爱学习
浙公网安备 33010602011771号