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,学员,管理系统
0
投稿

猜你喜欢

  • PHP单例模式是什么 php实现单例模式的方法

    2024-06-05 15:41:06
  • 微软建议的ASP性能优化28条守则(5)

    2008-02-27 13:54:00
  • 跟我学习javascript的闭包

    2024-04-23 09:11:51
  • python如何实现视频转代码视频

    2022-09-09 16:16:56
  • Bootstrap每天必学之工具提示(Tooltip)插件

    2023-07-02 05:25:22
  • python实现AdaBoost算法的示例

    2021-03-05 18:40:23
  • Python定制类你不知道的魔术方法

    2022-10-26 11:26:40
  • 当恢复sqlserver bak文件时,原始的用户无法删除的解决方法

    2024-01-15 07:59:00
  • django实现前后台交互实例

    2022-04-12 20:53:33
  • Docker安装MySQL8.0的实现方法

    2024-01-23 06:52:06
  • 浅谈MySQL索引优化分析

    2024-01-16 00:04:08
  • Vue的生命周期一起来看看

    2024-05-02 17:03:21
  • 解决python彩色螺旋线绘制引发的问题

    2023-06-30 12:49:12
  • python中字符串最常用的十三个处理操作记录

    2023-10-19 23:25:32
  • Mysql字段为null的加减乘除运算方式

    2024-01-17 23:35:40
  • 基于matplotlib中ion()和ioff()的使用详解

    2021-11-23 17:54:27
  • 怎么让按钮更容易被点击

    2007-08-22 09:07:00
  • Mysql外键约束的创建与删除的使用

    2024-01-24 11:32:33
  • 什么是python的列表推导式

    2023-03-11 03:06:02
  • 十个实用且简单的MySQL函数

    2024-01-27 06:37:16
  • asp之家 网络编程 m.aspxhome.com