python学员管理系统

学员管理系统


#初学者做的很差劲!!!!!
def system_information():#打印菜单
    print('-' * 20)
    print('[1]添加学员')
    print('[2]删除学员')
    print('[3]修改学员信息')
    print('[4]查询学员信息')
    print('[5]显示所有学员信息')
    print('[6]退出系统')
    print('-'*20)

stu_list=[{'name': 'TOM', 'age': '18', 'gender': 'man'},{'name': 'test1', 'age': '19', 'gender': 'man'},{'name': 'ww', 'age': '19', 'gender': 'man'}]
#这个是学员列表,存储学员信息,可以为空,因为要调试所以就填了一些。
def stu_informaiton():
    """这个是用于增加学员信息时用的函数,其实不用单独出来一个函数也可以,只不过写都写了就懒得改了"""
    name = input('请输入学员名字:')
    age = input('请输入学员年龄:')
    gender = input('请输入学员性别:')
    return {'name': name, 'age': age, 'gender':gender}


def stu_name():
    """ 这个是用于后来查找学员、修改学员信息、删除学员信息,输入学员名字。"""
    name=input('请输入学员名字:')
    return name


def add_stu(stu_info):
    """学员增加函数"""
    global stu_list #使用全局变量
    stu_list.append(stu_info)
    print(stu_list)
    #这边其实不用加print,为了调试的时候方便所以加上。

def whereis_stu(name):
    """通过输入的学员名字定位学员信息在列表的那个位置"""
    global stu_list
    for i in stu_list:
        if name==i['name']:
            return i

def remove_stu(name):
    """删除学员函数"""
    global stu_list
    whereis=whereis_stu(name)
    stu_list.remove(whereis)
    print(stu_list)
    #这边其实不用加print,为了调试的时候方便所以加上。
    
def change_stu(name):
    """修改学员信息的函数"""
    global stu_list
    whereis=whereis_stu(name)
    change_key=input('请输入修改的学员信息key[name|age|gender]:')
    change_value = input(f'请输入{change_key}修改后的学员信息:')
    whereis[change_key]=change_value

def exist_stu(name):
    """这个函数是用于通过输入的学员姓名判断学员信息的存在性"""
    # flag为0时无此学员,flag为1时有此学员
    global stu_list
    flag=0
    for i in stu_list:
        if name == i['name']:
            print(f'学员{name}存在')
            whereis=stu_list.index(i)
            print(f'{name}在学员列表第{whereis+1}个')
            flag=1
    return flag

def query_stu(name):
    """这个是通过学员姓名查询学员信息的函数"""
    if(exist_stu(name)==0):
        flag=0
        return flag
    else :
        flag = 1
        return flag

while 1:
    system_information()
    option=int(input('请输入您的选项:'))
    if option == 1:

        name = stu_name()
        if (query_stu(name) == 0):
            stu_info = stu_informaiton()
            add_stu(stu_info)

    elif option == 2:

        name = stu_name()
        if (query_stu(name) == 1):
            remove_stu(name)
            print(f'学员{name}已删除!')
        else:
            print(f'学员{name}不存在,无法删除!')

    elif option == 3:

        name = stu_name()
        if (query_stu(name) == 1):
            change_stu(name)
        else:
            print(f'学员{name}不存在,无法修改!')

    elif option == 4:

        name = stu_name()
        if (query_stu(name) == 0):
            print(f'学员{name}不存在!')

    elif option == 5:

        print(stu_list)

    elif option == 6:

        exit()
    else:
        print('输入的值错误!')
#这个代码其实还有很多可以优化的地方,比如通过增加字典的key-value去用id控制查找修改学员的信息。
#代码其实有点繁琐,可以用for循环的else和if语句去判断学员的存在性。因为存在与不存在可以for循环内通过if执行语句中去break,和else正常执行实现2个分支。不是if和else搭配,是for 和else的搭配。
#暂时就想到这么多,以后慢慢学再补充。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值