python 实现简易的学员管理系统

简介: python 实现简易的学员管理系统


前言

前面我们已经学习了 python 的输入输出、条件语句、循环、字符串、列表、元组、字典、集合以及函数,那么这篇文章,我将运用前面所学,为大家实现一个简易的学员管理系统。如果大家对这些方面的知识,还没有多少了解,欢迎大家去阅读我的python 学习专栏。


基本思路

首先我们需要制作出来一个菜单,提示用户有哪些功能(增加信息、删除信息、修改信息、查找信息、显示所有学员信息),然后根据用户的选择,我们去执行对应的功能,并且不可能只执行一次操作就结束程序,所以我们需要将整个操作放入循环中,当用户输入退出功能时,再退出程序。


需求实现

1.实现菜单的功能

menu 函数用来实现菜单功能。

def menu():
    print('---欢迎来到学员管理系统---')
    print('-------0.退出系统-------')
    print('-------1.添加学员-------')
    print('-------2.删除学员-------')
    print('-----3.修改学员信息------')
    print('-----4.查找学员信息------')
    print('----5.显示所有学员信息----')
    print('-'*23)

2.提示用户输入需要进行的操作,并执行相关操作

整个操作需要放入 while 循环中

while True:
    menu()  # 显示菜单
    option = int(input('请输入你要进行的操作:'))  # 提示用户输入
    if option == 0:
        exit(0)  # 这里退出程序比较简单,我们不必另外使用函数
    elif option == 1:
        add_info()
    elif option == 2:
        del_info()
    elif option == 3:
        modify_info()
    elif option == 4:
        search_info()
    elif option == 5:
        print_ifo()

这里退出程序,我们可以使用 exit(0) 函数,也可以使用 break 跳出循环结束程序。然后那些增删改查和显示信息的功能我们就额外使用函数来实现对应功能。

3.具体函数功能的实现

增加学员信息

我们将所有学员的信息存储在列表中,然后列表中的每一个数据以字典的形式存储某个学员的信息。


全局变量 info = [ ] 存储所有学员信息。


这里我们设计时,不存在姓名相同的情况,所以,我们在添加之前需要判断,该学员的信息是否已经存在,如果存在就不执行添加功能,如果不存在就添加学员。

def add_info():
    '''
    先提示用户输入信息,然后在已有信息中查找,如果已存在则结束函数,不存在则添加
    :return:
    '''
    id_info = input('请输入学员学号:')
    name_info = input('请输入学员姓名:')
    tel_info = input('请输入学员电话号:')
    dict_info = {}  # 创建一个空字典用来存放单个学员信息
    global info  # 因为需要进行增加操作,所以操作对象是全局变量info
    for i in info:
        if i['name'] == name_info:
            print('学员信息已存在,添加失败')
            break
    else:  # 当for循环正常结束的时候,表明不存在该学员,正常添加信息
        dict_info['id'] = id_info
        dict_info['name'] = name_info
        dict_info['tel'] = tel_info
        info.append(dict_info)
        print('添加成功')

为了查看是否添加成功,我们可以先来实现显示所有学员信息功能。

显示所有学员信息

显示所有学员信息比较简单,就是使用一个循环,然后打印。

def print_ifo():
    for i in info:
        print(f"学员学号:{i['id']}\t学员姓名:{i['name']}\t学员电话:{i['tel']}")

这里注意区别单引号和双引号的使用

删除学员信息

在删除之前,我们需要判断要删除的学员信息是否存在,如果不存在就结束该功能,存在则删除。

def del_info():
    '''如果要删除的学员信息不存在,则结束函数,如果存在则删除'''
    name_info = input('请输入你要删除的学员信息的姓名')
    global info
    for i in info:
        if i['name'] == name_info:
            info.remove(i)
            print('删除成功')
            break  # 当删除之后可以提前结束循环
    else:
        print('该学员不存在')  # 当循环正常结束的时候,表明不存在要删除的学员的信息

修改学员信息

再修改学员信息之前,我们同样需要判断该学员信息是否存在,不存在则结束该功能,存在就修改。

def modify_info():
    name_info = input('请输入你要修改的学员信息的姓名:')
    tel_info = input('请输入你要修改的学员的电话信息:')
    global info
    for i in info:
        if i['name'] == name_info:
            i['tel'] = tel_info
            print('修改成功')
            break
    else:
        print('你要修改的学员的信息不存在')

查询学员信息

当查询到的时候就输出该学员的信息,不存在则提示不存在。

def search_info():
    name_info = input('请输入你要查找的学员信息的姓名:')
    for i in info:
        if i['name'] == name_info:
            print(f"学员学号:{i['id']}\t学员姓名:{i['name']}\t学员电话:{i['tel']}")
            break
    else:
        print("学员信息不存在")

整体代码展示

info = []  # 以列表的形式存储所有学员信息,每个学员信息以字典的形式存储
def menu():
    print('---欢迎来到学员管理系统---')
    print('-------0.退出系统-------')
    print('-------1.添加学员-------')
    print('-------2.删除学员-------')
    print('-----3.修改学员信息------')
    print('-----4.查找学员信息------')
    print('----5.显示所有学员信息----')
    print('-'*23)
def add_info():
    '''
    先提示用户输入信息,然后在已有信息中查找,如果已存在则结束函数,不存在则添加
    :return:
    '''
    id_info = input('请输入学员学号:')
    name_info = input('请输入学员姓名:')
    tel_info = input('请输入学员电话号:')
    dict_info = {}
    global info
    for i in info:
        if i['name'] == name_info:
            print('学员信息已存在,添加失败')
            break
    else:
        dict_info['id'] = id_info
        dict_info['name'] = name_info
        dict_info['tel'] = tel_info
        info.append(dict_info)
        print('添加成功')
def del_info():
    '''如果要删除的学员信息不存在,则结束函数,如果存在则删除'''
    name_info = input('请输入你要删除的学员信息的姓名')
    global info
    for i in info:
        if i['name'] == name_info:
            info.remove(i)
            print('删除成功')
            break
    else:
        print('该学员不存在')
def modify_info():
    name_info = input('请输入你要修改的学员信息的姓名:')
    tel_info = input('请输入你要修改的学员的电话信息:')
    global info
    for i in info:
        if i['name'] == name_info:
            i['tel'] = tel_info
            print('修改成功')
            break
    else:
        print('你要修改的学员的信息不存在')
def search_info():
    name_info = input('请输入你要查找的学员信息的姓名:')
    for i in info:
        if i['name'] == name_info:
            print(f"学员学号:{i['id']}\t学员姓名:{i['name']}\t学员电话:{i['tel']}")
            break
    else:
        print("学员信息不存在")
def print_ifo():
    for i in info:
        print(f"学员学号:{i['id']}\t学员姓名:{i['name']}\t学员电话:{i['tel']}")
while True:
    menu()
    option = int(input('请输入你要进行的操作:'))
    if option == 0:
        exit(0)
    elif option == 1:
        add_info()
    elif option == 2:
        del_info()
    elif option == 3:
        modify_info()
    elif option == 4:
        search_info()
    elif option == 5:
        print_ifo()


相关文章
|
13天前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
167 55
|
1月前
|
机器学习/深度学习 数据采集 供应链
使用Python实现智能食品安全追溯系统的深度学习模型
使用Python实现智能食品安全追溯系统的深度学习模型
65 4
|
2天前
|
存储 缓存 监控
局域网屏幕监控系统中的Python数据结构与算法实现
局域网屏幕监控系统用于实时捕获和监控局域网内多台设备的屏幕内容。本文介绍了一种基于Python双端队列(Deque)实现的滑动窗口数据缓存机制,以处理连续的屏幕帧数据流。通过固定长度的窗口,高效增删数据,确保低延迟显示和存储。该算法适用于数据压缩、异常检测等场景,保证系统在高负载下稳定运行。 本文转载自:https://www.vipshare.com
90 66
|
23天前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
129 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
3天前
|
存储 算法 Python
文件管理系统中基于 Python 语言的二叉树查找算法探秘
在数字化时代,文件管理系统至关重要。本文探讨了二叉树查找算法在文件管理中的应用,并通过Python代码展示了其实现过程。二叉树是一种非线性数据结构,每个节点最多有两个子节点。通过文件名的字典序构建和查找二叉树,能高效地管理和检索文件。相较于顺序查找,二叉树查找每次比较可排除一半子树,极大提升了查找效率,尤其适用于海量文件管理。Python代码示例包括定义节点类、插入和查找函数,展示了如何快速定位目标文件。二叉树查找算法为文件管理系统的优化提供了有效途径。
34 5
|
24天前
|
机器学习/深度学习 算法 前端开发
基于Python深度学习的果蔬识别系统实现
果蔬识别系统,主要开发语言为Python,基于TensorFlow搭建ResNet卷积神经网络算法模型,通过对12种常见的果蔬('土豆', '圣女果', '大白菜', '大葱', '梨', '胡萝卜', '芒果', '苹果', '西红柿', '韭菜', '香蕉', '黄瓜')图像数据集进行训练,最后得到一个识别精度较高的模型文件。再基于Django框架搭建Web网页端可视化操作界面,以下为项目实现介绍。
37 4
基于Python深度学习的果蔬识别系统实现
|
2月前
|
机器学习/深度学习 传感器 存储
使用 Python 实现智能地震预警系统
使用 Python 实现智能地震预警系统
142 61
|
1月前
|
弹性计算 数据管理 数据库
从零开始构建员工管理系统:Python与SQLite3的完美结合
本文介绍如何使用Python和Tkinter构建一个图形界面的员工管理系统(EMS)。系统包括数据库设计、核心功能实现和图形用户界面创建。主要功能有查询、添加、删除员工信息及统计员工数量。通过本文,你将学会如何结合SQLite数据库进行数据管理,并使用Tkinter创建友好的用户界面。
69 2
从零开始构建员工管理系统:Python与SQLite3的完美结合
|
1月前
|
Python
Python之音乐专辑管理系统
音乐专辑管理系统是一款用于管理和维护音乐专辑信息的应用程序,支持添加、删除、修改和查询专辑详情(如专辑名、艺术家、发行日期及曲目列表)。系统运行需Python 3.x环境,硬件要求较低,适合个人及小型团队使用。
60 4
|
1月前
|
Python
Python实现摇号系统
本文介绍了如何使用Python构建一个简单的摇号系统,包括用户输入、随机抽取、结果展示和日志记录等功能。通过导入`random`、`datetime`和`logging`模块,实现了从参与者名单中随机抽取中奖者,并记录每次摇号的结果,方便后续查看和审计。完整代码示例提供了从功能实现到主程序调用的全过程。
37 2