文章目录
- 前言
- 基本思路
- 需求实现
- 1.实现菜单的功能
- 2.提示用户输入需要进行的操作,并执行相关操作
- 3.具体函数功能的实现
- 增加学员信息
- 显示所有学员信息
- 删除学员信息
- 修改学员信息
- 查询学员信息
- 整体代码展示
前言
前面我们已经学习了 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 # 因为需要进行增加操作,所以操作对象是全局变量infofor i in info:if i['name'] == name_info:print('学员信息已存在,添加失败')breakelse: # 当for循环正常结束的时候,表明不存在该学员,正常添加信息dict_info['id'] = id_infodict_info['name'] = name_infodict_info['tel'] = tel_infoinfo.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 infofor 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 infofor i in info:if i['name'] == name_info:i['tel'] = tel_infoprint('修改成功')breakelse: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']}")breakelse: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 infofor i in info:if i['name'] == name_info:print('学员信息已存在,添加失败')breakelse:dict_info['id'] = id_infodict_info['name'] = name_infodict_info['tel'] = tel_infoinfo.append(dict_info)print('添加成功')def del_info():'''如果要删除的学员信息不存在,则结束函数,如果存在则删除'''name_info = input('请输入你要删除的学员信息的姓名')global infofor i in info:if i['name'] == name_info:info.remove(i)print('删除成功')breakelse:print('该学员不存在')def modify_info():name_info = input('请输入你要修改的学员信息的姓名:')tel_info = input('请输入你要修改的学员的电话信息:')global infofor i in info:if i['name'] == name_info:i['tel'] = tel_infoprint('修改成功')breakelse: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']}")breakelse: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()