Python第十三天函数应用-学员管理系统

62 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

函数加强

目标

  • 应用:学员管理系统
  • 递归
  • lambda表达式
  • 高阶函数

学员管理系统

系统简介

需求:进入系统显示系统功能界面,功能如下:

  • 添加学员
  • 删除学员
  • 修改学员信息
  • 查询学员信息
  • 显示所有学员信息
  • 退出系统

共六个功能

步骤分析

  1. 显示功能界面
  2. 用户输入功能序号
  3. 根据用户输入的功能序号,执行不同的功能函数
  4. 定义函数
  5. 调用函数

需求实现

#1.定义功能界面函数
​
​
def info_print():
    print('请选着功能')
    print('—'*20)
    print('1.添加学员')
    print('2.删除学员')
    print('3.修改学员信息')
    print('4.查询学员信息')
    print('5.显示所有学员信息 ')
    print('6.退出系统')
    print('—'*20)
​
def info_xiugai():
    print('1.修改学号')
    print('2.修改姓名')
    print('3.修改年龄')
    print('4.修改性别')
    print('5.修改班级')
​
info = []
​
​
​
#添加学员信息
def tianjia(b,c,d,e,f):
    #声明一个全局info
    global info
​
    #判断用户输入的姓名是否重复
    for i in info:
        if c==i['name']:
            print('此用户此存在')
            #return中断执行函数后面代码
            return 
​
    #准备一个空字典
    info_dict={}
    #字典新增数据
    info_dict['id']=b
    info_dict['name']=c
    info_dict['age']=d
    info_dict['gender']=e
    info_dict['class']=f
    #print(info_dict)
    
​
    #将信息追加到我们的字典里info[]当中
    #把info_dict接收的信息追加进去
    
    info.append(info_dict)
    print(info)
    print('--'*20)
​
    
​
​
#删除
def shanchu(b):
​
    #声明一个全局
    global info
    #判断姓名是否存在
    #首先遍历info列表
    for i in info:
        #条件判断用户输入用户名在列表中是否存在的
        if b==i['name']:
            #存在的话就删除掉
            info.remove(i)
            #当列表中有用户输入的用户名就会删除该用户名称,执行后执行break,break是终止本次的for循环遍历
​
            break
    #当用户输入的info列表中不存在就输出学员不存在
    else:
        print('该学员不存在')
#修改
def xiugai(q):
    idid=int(input('请输入学号'))
    #声明一个全局
    global info
    # info_xiugai()
    for i in info:
        if idid == i['id']:
            info_xiugai()
            gaigai = int(input('请选择功能序号'))
            if gaigai == 1:
                i['id'] = input('新学号:')
            elif gaigai == 2:
                i['name'] = input('新名字:')
            elif gaigai == 3:
                i['age'] = input('新年龄:')
            elif gaigai == 4:
                i['gender'] = input('新性别:')
            elif gaigai == 5:
                i['class'] = input('新班级:')
​
​
        else:
​
            print('该学员不存在')
    print(info)
​
​
​
    #         i['id']=input('请输入新的学号')
    #     elif c==i['name']:
    #            i['name']=input('请输入新的姓名')
    #         break
    #     else:
    # print('该学员不存在')
    #
    #     #elif c==i['name']:
    #            #i['name']=input('请输入新的姓名')
    #            #break
    #
            
   # print(info)
​
​
​
def chaxun():
    xing=input('请输入你查询的学员名字')
    global info
    for iiii in info:
        if xing == iiii['name']:
            print('查找的学员信如下')
            print('-'*20)
            print(f"该学员的学号是:{iiii['id']},姓名是:{iiii['name']},年龄是:{iiii['age']}.性别是:{iiii['gender']}.班级是:{iiii['class']}")
            break
    else:
        print('该学员不存在')
​
def xianshi():
    #\t进行数据对齐更美观
    print('学号\t姓名\t年龄\t性别\t班级')
    #循环遍历info
    for iiiii in info:
        print(f'{iiiii["id"]},\t{iiiii["name"]},\t{iiiii["age"]},\t{iiiii["gender"]},\t{iiiii["class"]}')
​
def tuichu():
    tuituitui = input("你是否要退出当前操作系统?yes or no")
    if tuituitui == 'yes':
        exit()
​
​
​
#4按照用户输入的功能序号,执行不同的功能函数#5系统需要循环使用,直到用户输入6,才真正的退出去
#while True:就是这个功能了while True:
 info_print()
 a=int(input('请选择功能序号'))
​
 if   a==1:
    print('添加')
    b=int(input('请输入学号'))
    c=input('请输入姓名')
    d=int(input('请输入年龄'))
    e=input('请输入性别')
    f=int(input('请输入班级'))
    print('-'*20)
    tianjia(b,c,d,e,f)
​
 elif a==2:
    print('删除')
    b=input('请输入要删除学员的姓名')
    print('-'*20)
    shanchu(b)
 elif a == 3:
     print('修改')
     print('-'*20)
     info_xiugai()
     print('-'*20)
     q=int(input('请输入修改的功能序列号'))
     xiugai(q)
​
​
 elif a == 4:
     print('查询')
     chaxun()
 elif a == 5:
     print('显示所有')
     xianshi()
 elif a==6:
     print('退出')
     tuichu()
 else:
     print('输入功能序号错误')
     

\