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

———————————————————————————————————————————————————————————————————————————

                                                                                                                         无敌小马爱学习

posted on 2025-09-25 23:08  马俊南  阅读(6)  评论(0)    收藏  举报