Python函数实现学员管理系统
作者:bluenessdrops 发布时间:2023-06-22 03:32:30
标签:python,学员,管理系统
本文实例为大家分享了Python函数实现学员管理系统的具体代码,供大家参考,具体内容如下
这个是一个简单的管理程序
输入姓名,年龄,性别(也可以添加其他类别例如性取向),然后以列表的形式保存(默认为空列表)。功能如下:
按1添加成员
按2删除成员
按3修改成员信息(目前不包括姓名但是可以添加)
按4检索并打印某个成员的全部信息
按5打印全部成员的信息
按6退出程序
大概就是这样子。下面是代码:
import time
def main():
'''主函數'''
while True:
sl(),select_function()
sl()
user_input = input('select your operation: ')
if user_input == '1':
sl(),add_op()
elif user_input == '2':
sl(),delete_op()
elif user_input == '3':
sl(),alter_op()
elif user_input == '4':
sl(),search_op()
elif user_input == '5':
sl(),print_op()
elif user_input == '6':
print('\n system quit.')
break
else:
sl(),print('\n plz enter correct number.')
def select_function():
'''顯示系統功能'''
print("\n1.add mbr\n2.delete mbr\n3.change info\
\n4.check info\n5.prt\'l info\n6.exit sys\n")
sl()
def store_new_info():
a = input('enter name: ').title()
b = input('enter age: ').title()
c = input('enter gender: ').title()
return a,b,c
def add_op():
'''添加新人'''
name,age,gender = store_new_info()
for i in all_info:
if name == i['name'].strip():
print(f'{name} is existed.retry plz')
break
else:
dict_inf = {}
dict_inf['name'] = name
dict_inf['age'] = age
dict_inf['gender'] = gender
all_info.append(dict_inf)
print(f'{name} added.')
def delete_op():
'''刪除已有人物'''
del_nam = input('type the name to del:').title()
for i in all_info:
if del_nam == i['name'].strip():
all_info.remove(i)
sl(),print(f'{del_nam} is removed.')
else:
sl(),print(f'no {del_nam} in list now.')
def alter_op():
'''修改現有人物信息'''
alter_nam = input('type the name who needs change: ').title()
for i in all_info:
if alter_nam != i['name'].strip():
continue
else:
i['age'] = input('type new age: ')
i['gender'] = input('type new gender: ')
break
else:
sl(),print(f'no {alter_nam} in list.')
def search_op():
'''查找某個人物的信息'''
se_num = input('type name to search: ').strip().title()
for i in all_info:
if se_num != i['name'].strip():
continue
else:
sl(),print(i)
break
def modify_op():
'''統一name首字母大寫且左對齊'''
b = 0
for i in range(len(all_info)):
a = len(all_info[i].get('name').strip())
b = max(a,b)
for i in range(len(all_info)):
all_info[i]['name'] = all_info[i].get('name').strip().title().ljust(b,' ')
all_info[i]['gender'] = all_info[i].get('gender').strip().title().ljust(6,' ')
def print_op():
'''輸出所有人物的全部信息'''
modify_op()
for i in all_info:
print('\n',i,'\n')
def sl():
time.sleep(0.5)
all_info = []
main()
简单解释一下:
由于python中没有switch case语句所以这里用if elif代替,实现按键选择功能的需求
信息的保存是用列表和字典嵌套实现,即形如 [{},{},{}] 的格式,每个字典里面保存一个人员的信息。
函数modify_op()是为了美化显示,实现把所有成员的名字取等长,首字母大写且左对齐输出。例如norn和scotti,后者6个字符前者4个字符,这样就会用空格把norn补为6个字符。函数中大量出现的strip()和title()就是为此才使用的
用了一些代码来避免bug,例如排除大小写的影响(vert和VERT),排除重名的可能性,排除选择程序功能时输入1-6之外的字符导致报错,排除各种的死循环等。
由于程序没有保存信息到文本文件的功能,所以退出程序之后所有的信息都会消失。因为我是用的是谷歌的云ide,不知道保存文件路径怎么写(/gdrive/file.txt?)。so啥时候自己的电脑能拿来用了就会加上的
来源:https://blog.csdn.net/bluenessdrops/article/details/104465767


猜你喜欢
- Python 中的运算符什么是运算符?举个简单的例子 4 +5 = 9 。 例子中,4 和 5 被称为操作数,"+" 称
- 1、解压到想要安装的位置,创建my.ini文件my.ini的内容如下[mysql]# 设置mysql客户端默认字符集default-char
- 条件判断计算机之所以能做很多自动化的任务,因为它可以自己做条件判断。比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,用if
- 经过摸索和实践,我把自己的解决方法,写在下面: 说明: 我的Oracle客户端的版本是 oracle 9i, 安装client端的时候,不能
- 1.字符串大小写转value = "wangdianchao"# 转换为大写big_value = value.uppe
- 很多网友在浏览网页时应该会发现很多网页有显示时间和日期的功能,这个不难,使用可视化网页制作软件Drea
- tensorflow官方提供了3种方法来读取数据:预加载数据(preloaded data):在TensorFlow图中定义常量或变量来保存
- SMTP模块这么多已定义的类中,我们最常用的的还是smtplib.SMTP类,就具体看看该类的用法:smtp实例封装一个smtp连接,它支持
- 一、前言刚开始学Python的小伙伴可能会觉得每次写Python打开Cmd或者idle有点烦躁,没有代码补全也没有格式提示等。所以直接上手了
- 1、手动调参,但这种方法依赖于大量的经验,而且比较费时。许多情况下,工程师依靠试错法手工调整超参数进行优化,有经验的工程师可以在很大程度上判
- django 中当我们要查询获取数据时:数据库中的信息:如一个学生信息表 students:get方法:students.objects()
- 单表备份代码:<?php class Db { &n
- 前言本来而言,这个问题网上很多资料,但是网上资料都是复制来复制去,很多话大家其实都不是很明白的,或者拿着官方文档翻译过来的,让人看的非常迷糊
- 大家都知道Vue.js是中国人创造出来的,简单易用,所以必须要支持一下Vue采用的MVVM设计模式也就是说model和view绑定 mode
- 什么是内存逃逸分析内存逃逸分析是go的编译器在编译期间,根据变量的类型和作用域,确定变量是堆上还是栈上简单说就是编译器在编译期间,对代码进行
- 1.如何构建应用框架一般来说构建应用框架包含3个部分:命令行参数解析配置文件解析应用的命令行框架:需要具备 Help 功能、需要能够解析命令
- 一 简单介绍wxpy基于itchat,使用了 Web 微信的通讯协议,,通过大量接口优化提升了模块的易用性,并进行丰富的功能扩展。实现了微信
- Vue实践分享(三)在实际项目的开发过程中,经常会遇到页面还没渲染完成而插件就已经开始加载的问题,这样就会导致显示和功能出错。可以通过Vue
- 【摘要】 性能 首先,FCKEDITOR的性能是非常好的,用户只需很少的时间就可以载入FCKEDITOR所需文件.对于其他在线编辑器来说,这
- 场景针对园区停车信息,需要对各个公司提供的停车数据进行整合并录入自家公司的大数据平台数据的录入无外乎就是对数据的增删改查下面上一个常规的写法