Python 学员信息统计系统,函数调用

"""
学员信息管理系统
1,添加 2,删除 3,修改 4,查询 5,显示所有,6退出
"""
# 等待存储所有学员信息
info = []


# 学员管理系统主页面显示
def main_stu():
    print('#' * 20)
    print('1.添加\t2.删除   \t3.修改')
    print('4.查找\t5.显示所有\t6.退出')
    print('#' * 20)


# 增加学员信息的函数
def add_info():
    """
    增加学员的函数
    :return:
    """
    # 输入 学号,姓名,电话
    new_id = input('请输入学号:')
    new_name = input('请输入姓名:')
    new_mobile = input('请输入手机号:')
    # 判断姓名是否存在
    global info  # 将info定义为全局变量,如果这里不定义,info 变量的变化值,只在当前的函数里生效。
    for i in info:  # 遍历 info 列表,拆分为多个 字典
        if new_name == i['Name']:  # 选择i字典 key , 得到 字典 的 value 给 new_name.
            print(f'{new_name} 用户已经存在, 不能增加!')
            # 重点:return 后没有表达式,退出当前 add_info 函数。
            return  # 如果没有 return , 会继续执行函数下面的语句,造成重复 Name .
    info_dict = {}  # 生成空字典
    # 字典元素的增加和修改: 如果key存在,修改key的值,如果不存在,就增加key和value
    # # 增加学员到字典, ‘ID’ ‘Name’ ‘Tel’  为字典的 key 值
    info_dict['ID'] = new_id
    info_dict['Name'] = new_name
    info_dict['Tel'] = new_mobile
    print(info_dict)
    info.append(info_dict)  # 字典增加到列表info
    print(info)


def del_info():
    """
    删除学员:删除info列表中的字典()
    :return:
    """
    global info
    print(f'当前的学员列表信息为{info}')
    del_name = input('你想删除的学员名字:')
    for i in info:
        if del_name == i['Name']:
            info.remove(i)
            break
    else:  # else 与 for 循环平级, 表示 for 循环所有遍历完成后(没有被break中断),
        # 没有执行if内语句。才执行 else 语句。
        print(f'没有找到{del_name}, 选择其它功能')
    print(f'删除后的用户列表{info}')


def modify_info():
    """
    修改用户信息,根据名字,修改ID和电话
    :return:
    """
    global info
    print(f'当前的学员列表信息为{info}')
    modify_name = input(f'输入需要修改的用户名字:')
    for i in info:
        if modify_name == i['Name']:
            # 引号的嵌套,外层和内层必须区分:外层双引,内层就单引;外层单引,内层就双引。
            print(f"现ID为{i['ID']},  现电话号码为 {i['Tel']}")
            i['ID'] = input('输入新ID号:')  # i字典的ID键 对应的 值  = input 输入
            i['Tel'] = input('输入新的电话号码:')
            break
    else:
        print(f'没有{modify_name},无需修改')
    print(f'修改后的用户列表{info}')


def search_info():
    """
    根据输入的用户名,查询此用户的所有信息
    :return:
    """
    search_name = input('输入要查询的用户名字:')
    global info
    for i in info:
        if search_name == i['Name']:
            print('-' * 30)
            print(f'{search_name} 用户的所有信息是 {i}')
            # 引号的嵌套,外层和内层必须区分:外层双引,内层就单引;外层单引,内层就双引。
            print(f"{search_name} 用户的ID是{i['ID']}, 姓名是{i['Name']}, 电话号码是{i['Tel']}")
            break
    else:
        print(f'没有找到 {search_name} !')


def print_all():
    global info
    """显示所有用户信息"""
    print('显示所有学员信息')
    print('学号\t姓名\t电话')
    for i in info:
        print(f"{i['ID']}\t{i['Name']}\t{i['Tel']}")


while True:
    main_stu()
    stu_select = int(input('输入数字1-6,选择功能:'))
    if stu_select == 1:
        add_info()
    elif stu_select == 2:
        del_info()
    elif stu_select == 3:
        modify_info()
    elif stu_select == 4:
        search_info()
    elif stu_select == 5:
        print_all()
    elif stu_select == 6:
        # 终止 while True 循环
        exit_flag = input('确定要退出系统吗? yes or no :')
        if exit_flag == 'yes':
            print('系统已退出系统')
            break
    else:
        print('输入不正确')
        main_stu()

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值