Python函数实现学员管理系统

 更新时间:2021年07月21日 14:55:41   作者:bluenessdrops  
这篇文章主要为大家详细介绍了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啥时候自己的电脑能拿来用了就会加上的

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

相关文章

  • django-初始配置(纯手写)详解

    django-初始配置(纯手写)详解

    这篇文章主要介绍了django-初始配置(纯手写)详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • PyCharm 创建指定版本的 Django(超详图解教程)

    PyCharm 创建指定版本的 Django(超详图解教程)

    这篇文章主要介绍了PyCharm 创建指定版本的 Django,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-06-06
  • PyGame贪吃蛇的实现代码示例

    PyGame贪吃蛇的实现代码示例

    贪吃蛇是款经典游戏,本文将带你一步步用python语言实现一个贪吃蛇小游戏,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • python使用分治法实现求解最大值的方法

    python使用分治法实现求解最大值的方法

    这篇文章主要介绍了python使用分治法实现求解最大值的方法,较为详细的分析了分治法的原理与实现求最大值的方法,需要的朋友可以参考下
    2015-05-05
  • 详解python tcp编程

    详解python tcp编程

    这篇文章主要介绍了python tcp编程的相关资料,帮助大家更好的理解和学习python tcp编程,感兴趣的朋友可以了解下
    2020-08-08
  • python 识别登录验证码图片功能的实现代码(完整代码)

    python 识别登录验证码图片功能的实现代码(完整代码)

    这篇文章主要介绍了python 识别登录验证码图片功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • Python while、for、生成器、列表推导等语句的执行效率测试

    Python while、for、生成器、列表推导等语句的执行效率测试

    这篇文章主要介绍了Python while、for、生成器、列表推导等语句的执行效率测试,本文分别用两段程序测算出了各语句的执行效率,然后总结了什么情况下使用什么语句优先使用的语句等,需要的朋友可以参考下
    2015-06-06
  • Flask框架搭建虚拟环境的步骤分析

    Flask框架搭建虚拟环境的步骤分析

    这篇文章主要介绍了Flask框架搭建虚拟环境的步骤,结合实例形式分析总结了flask框架搭建虚拟环境的步骤、常见问题与解决方法,需要的朋友可以参考下
    2019-12-12
  • Python+Appium新手教程

    Python+Appium新手教程

    这篇文章主要介绍了Python+Appium的新手教程,内容很详细,文章末尾还带有测试的小练习,适合新手小白,如果有需要的朋友可以参考下
    2021-04-04
  • Python进程通信之匿名管道实例讲解

    Python进程通信之匿名管道实例讲解

    这篇文章主要介绍了Python进程通信之匿名管道实例讲解,本文直接给出代码实例,代码中包含详细注释,需要的朋友可以参考下
    2015-04-04

最新评论