大家在学习编程语言的时候,有时候会遇到让编程一个简单的系统等的问题。比如我在学习python的时候,就让编程如下一样的一个学员管理信息的系统:

一个可以添加学员信息,删除学员信息,修改学员信息,查询学员信息,显示所有学员信息和退出这个学员管理系统的多个功能组合的系统。代码如下:
# 函数加强过程:递归+lambda表达式+高阶函数三者的综合应用
# 系统规定的就是不允许重名
# 定义功能函数界面
def info_print():
print('请选择功能------')
print('1.添加学员')
print('2.删除学员')
print('3.修改学员')
print('4.查询学员')
print('5.显示所有学员')
print('6.退出系统')
print('-' * 20)
# 准备空列表接收学员信息
info = []
# 添加
def add_info():
# 先用户输入信息
new_id = input('请输入学号')
new_name = input('请输入名字')
new_tel = input('请输入手机号')
# 声明全局变量info,因为数据是用字典存入这个空列表
global info
# 再判断是否已经有输入的学员姓名信息,有就提示用户,不再执行下面的代码
for i in info:
if new_name == i['name']:
print('此用户信息已经存在')
# 加return退出当前的函数,后面的代码就不执行了
return
# 先准备空字典用于输入信息
info_dict = {}
# 然后字典新增数据
info_dict['id'] = new_id
info_dict['name'] = new_name
info_dict['tel'] = new_tel
# 列表追加字典数据
info.append(info_dict)
print(info)
# 删除
def del_info():
del_name = input('请输入要删除的学员的姓名:')
global info
for i in info:
if del_name == i['name']:
info.remove(i)
# 系统不允许重名,删除了一个之后后面的就不需要再遍历了,所以要break退出循环
break
else:
print('该学员不存在')
print(info)
# 修改
def alter_info():
alter_name = input('请输入要修改的学员的姓名:')
global info
for i in info:
if alter_name == i['name']:
# 学员存在就修改手机号码,不存在就无法执行修改
i['tel'] = input('请输入新的手机号:')
# 找到要修改的就不用再遍历了,停止循环
break
else:
print('该学员不存在')
print(info)
# 查询
def search_info():
search_name = input('请输入要查询的学员的姓名:')
global info
for i in info:
if search_name == i['name']:
print('查找到学员信息如下:.......')
# 引号嵌套必须区分开,不然会出现错误
print(f"该学员的学号是{i['id']},姓名是{i['name']},手机号是{i['tel']}")
break
else:
print('该学员不存在')
print(info)
# 显示所有
def print_all():
# 加制表符\t就是为了对齐隔开分别打印的信息,使得更美观
print('学号\t姓名\t手机号')
for i in info:
# 因为这里就是全部打印,就不需要声明全局变量了
print(f'{i["id"]}\t{i["name"]}\t{i["tel"]}')
# 系统功能因为需要循环使用,直到用户输入6才退出系统
while True:
# 1.显示功能界面;上面定义函数,下面调用
info_print()
# 2.用户输入功能序号;因为上面接收到的数据类型是字符串,而这里用int就是改变数据类型为整型
user_num = int(input('请输入功能序号:'))
# 3.按照用户输入的功能序号去执行不同功能(函数);用到多重判断,因为不同序号执行不同功能;所有存储学员信息是全局变量
if user_num == 1:
add_info()
elif user_num == 2:
del_info()
elif user_num == 3:
alter_info()
elif user_num == 4:
search_info()
elif user_num == 5:
print_all()
elif user_num == 6:
# 因为现在全部的函数调用都在while True循环内,所以要退出系统就是要终止while True循环 -- break
exit_flag = input('确定要退出吗?yes or no')
if exit_flag == 'yes':
# break终止的就是就近的,也就是while True循环,所以不去封装退出函数,否则会出现不必要的问题
break
# 但是如果输入了1-6以外的数字呢是无法继续执行功能的,所以要写明特殊情况
else:
print('输入的功能序号有误')
如上就是我所编写的关于这个普通版学员管理系统的代码,根据不同的序号执行不同的功能来对学员信息进行处理。以后还会写面向对象版的学员管理系统,是另外一种版本。

![[Java] 学员管理系统(服务器—客户端模式)](https://img-blog.csdnimg.cn/20200331092643419.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1JlZ2lubw==,size_16,color_FFFFFF,t_70)
















