新闻动态

Python函数实现学员管理系统

发布日期:2022-02-22 15:25 | 文章来源:源码之家

本文实例为大家分享了Python函数实现学员管理系统的具体代码,供大家参考,具体内容如下

这个是一个简单的管理程序

输入姓名,年龄,性别(也可以添加其他类别例如性取向),然后以列表的形式保存(默认为空列表)。功能如下:

  • 按1添加成员
  • 按2删除成员
  • 按3修改成员信息(目前不包括姓名但是可以添加)
  • 按4检索并打印某个成员的全部信息
  • 按5打印全部成员的信息
  • 按6退出程序

大概就是这样子。下面是代码:

import time
def main():
  '''主函數'''
  while True:
 sl(),select_function()
 sl()
 user_input = input('select your operation: ')
 ifuser_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啥时候自己的电脑能拿来用了就会加上的

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

美国服务器租用

版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。

相关文章

实时开通

自选配置、实时开通

免备案

全球线路精选!

全天候客户服务

7x24全年不间断在线

专属顾问服务

1对1客户咨询顾问

在线
客服

在线客服:7*24小时在线

客服
热线

400-630-3752
7*24小时客服服务热线

关注
微信

关注官方微信
顶部