基于python实现学生管理系统


Posted in Python onOctober 17, 2018

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

1.0版本学生管理系统

'''
 1.添加学员
 2.修改学员
 3.查询学员
 4.删除学员
 0.退出程序
'''
student_list=[]
while True:
 print('1.添加学员')
 print('2.修改学员')
 print('3.查询学员')
 print('4.删除学员')
 print('0.退出程序')
 sel_num=input('请输入您要进行的操作:')
 sel_num=int(sel_num)
 #如果选择的数字不在0~5 继续选择
 while sel_num not in range(0,5):
  sel_num=input('您的选择无效,请重新选择:')
  sel_num=int(sel_num)
 if sel_num==1:
  name=input('请输入姓名:')
  age=input('请输入年龄:')
  sex=input('请输入性别:')
  person_list=[name,age,sex]
  student_list.append(person_list)
  print('添加成功!')
 elif sel_num==2:
  for x in range(0,len(student_list)):
   person=student_list[x]
   print('序号:%s 姓名:%s 年龄:%s 性别:%s '%(x,person[0],person[1],person[2]))
  index=input('请输入要修改的序号:')
  index=int(index)
  while index not in range(0, len(student_list)):
   index = input('您选择的序号无效,请重新选择:')
   index = int(index)
  person=student_list[index]
  name=person[0]
  age=person[1]
  sex=person[2]
  student_list[index][0]=input('请输入修改后的姓名:(%s):'%name)
  student_list[index][1]=input('请输入修改后的年龄:(%s):'%age)
  student_list[index][2]=input('请输入修改后的性别:(%s)'%sex)
  print('修改成功!')
 elif sel_num==3:
  for x in range(0,len(student_list)):
   person=student_list[x]
   name=person[0]
   age=person[1]
   sex=person[2]
   print('序号:%s 姓名:%s 年龄:%s 性别:%s '%(x,name,age,sex))
 elif sel_num==4:
  for x in range(0,len(student_list)):
   person=student_list[x]
   print('序号:%s 姓名:%s 年龄:%s 性别:%s '%(x,person[0],person[1],person[2]))
  print('1.删除所有学员')
  print('2.删除选择的学员')
  num=input('请输入您的选择:')
  if num=='1':
   student_list.clear()
  else:
   index = input('请输入要删除学员的序号:')
   index = int(index)
   while index not in range(0, len(student_list)):
    index = input('您选择的序号无效,请重新选择:')
    index = int(index)
   del student_list[index]
 else:
  break

2.0版本学生管理系统---函数版--用列表存放学员信息

#添加学员函数
def add_student():
 #输入学员姓名、年龄、电话
 name=input('请输入学员姓名:')
 age=input('请输入学员年龄:')
 phone=input('请输入学员电话:')
 #把name、age、phone放在小列表中
 student=[name,age,phone]
 # 把小列表添加到所有学员的大列表中
 # append(object) insert(index,object) extend(iterable)
 student_list.append(student)
 print('添加学员成功!')
#查询学员函数
def query_student():
 #1.查询所有学员
 #2.输入学员姓名 查询学员得到查询的学员的序号
 print('1.查询所有学员')
 print('2.查询部分学员')
 num=int(input('请输入操作序号:'))
 while num not in range(1,3):
  num=int(input('选择无效,请重新输入:'))
 if num==1:
  print('**************学员信息列表***************')
  #遍历大列表
  for x in range(0,len(student_list)):
   #根据x的值从大列表中取出小列表
   student=student_list[x]
   #从小列表中取出姓名、年龄、电话
   name=student[0]
   age=student[1]
   phone=student[2]
   print('序号:%s 姓名:%s 年龄:%s 电话:%s'%(x,name,age,phone))
 else:
  name = input('请输入您要查询的学员姓名:')
  while 1:
   a=False
   for student in student_list:
    if student[0] == name:
     index = student_list.index(student, 0, 8)
     print('序号:%s 姓名:%s 年龄:%s 电话:%s'%(index,student_list[index][0],student_list[index][1],student_list[
     index][2]))
     a=True
   if a==False:
    name=input('该学员没找到,请重新输入:')
   else:
    break
 
# 修改学员的函数
def update_student():
 #判断是否有学员信息,如果没有,直接结束函数的执行
 if len(student_list)==0:
  print('没有学员信息,无法进行修改操作!')
  #强制结束函数的执行 return下面的代码都不会再执行了
  return
 #1.查询学员信息
 query_student()
 #2.选择要修改的学员序号
 num=input('请选择要修改的学员序号:')
 #3.转换为整数
 num=int(num)
 #4.判断选择的学员序号是否在范围内
 while num not in range(0,len(student_list)):
  #不在范围,重新选择
  num=input('没有该序号,请重选:')
  num=int(num)
 #5.根据选择的序号取出对应的小列表
 student=student_list[num]
 new_name=input('请输入修改后的姓名(%s):'%student[0])
 new_age=input('请输入修改后的年龄(%s)'%student[1])
 new_phone=input('请输入修改后的电话(%s)'%student[2])
 #6.修改小列表中的数据
 student[0]=new_name
 student[1]=new_age
 student[2]=new_phone
 print('修改数据完成!')
#删除学员
#1.根据学员序号删除 2.删除所有学员 3.根据学员的姓名来删除(有同名的)
def delete_student():
 if len(student_list)==0:
  print('没有学员信息,无法执行删除操作!')
  return
 print('1.根据学员序号删除')
 print('2.删除所有学员')
 print('3.根据学员姓名删除学员')
 #获取输入的内容并转换为整数类型
 num=int(input('请输入您的选择:'))
 #判断选择的选项是否在范围内
 while num not in range(1,4):
  num=int(input('没有该序号,请重新选择'))
 #判断选择的选项
 if num == 1:
  # 1.查询学员信息
  query_student()
  #2.选择删除的序号
  num=int(input('请输入您要删除的学员序号:'))
  #判断选择序号是否在范围内
  while num not in range(0,len(student_list)):
   num=int(input('序号无效,请重选!'))
  is_del=input('您确定要删除(%s)学员的信息吗?(y/n):'%student_list[num][0])
  if is_del=='y':
   #删除列表中的所有数据
   del student_list[num]
   #student_list.pop(index)
   print('%s学员信息删除成功!'%student_list[num][0])
 if num==2:
  #确认删除
  is_del=input('您确定要删除所有学员信息吗?y(确定)/n(取消):')
  if is_del=='y':
   #删除列表中的所有数据
   student_list.clear()
   print('所有学员删除成功!')
  else:
   print('删除数据操作已去取消!')
 else:
  name = input('请输入您要删除的学员的姓名:')
  while 1:
   #定义列表存放不等于name的小列表
   list = []
   #遍历大列表
   for student in student_list:
    #判断输入的name是否和小列表里name的相等
    if student[0] != name:
     #找出与name不等的小列表所在的索引
     index = student_list.index(student,0,len(student_list))
     #将符合的小列表添加到list列表中
     list.append(student_list[index])
   #判断两个列表长度是否相等 相等说明大列表中不存在名字为name的小列表
   if len(student_list) == len(list):
    name = input('序号不存在,请重新输入:')
   #存在符合的小列表
   else:
    #清空大列表
    student_list.clear()
    #循环将list列表的内容写入到空的大列表中
    for dict in list:
     student_list.append(dict)
    break
#1.声明一个大列表,存放所有学员信息
student_list=[]
#2.while循环
while True:
 print('***********学员管理系统V2.0**************')
 print('1.添加学员')
 print('2.查询学员')
 print('3.修改学员')
 print('4.删除学员')
 print('0.退出程序')
 print('***************************************')
 #选择操作
 num=input('请选择您的操作:')
 #转换为整数
 num=int(num)
 #判断选择的选项是否在范围内
 while num not in range(0,5):
  #重新选择
  num=input('没有该选项,请重选:')
  #把字符串转换为整数类型
  num=int(num)
 #根据选择的选项执行对应的操作
 if num==1:
  #调用添加学员的函数
  add_student()
 elif num==2:
  #调用查询学员的函数
  query_student()
 elif num==3:
  #调用修改学员的的函数
  update_student()
 elif num==4:
  delete_student()
 else:
  print('程序已结束!')
  break

2.1版本学生管理系统---函数版--用字典存放学员信息

#添加学员函数
def add_student():
 #输入学员姓名、年龄、电话
 name=input('请输入学员姓名:')
 age=input('请输入学员年龄:')
 phone=input('请输入学员电话:')
 #把name、age、phone放在小字典中
 student={'name':name,'age':age,'phone':phone}
 # 把小字典添加到所有学员的大列表中
 # append(object) insert(index,object) extend(iterable)
 student_list.append(student)
 print('添加学员成功!')
#查询学员函数
def query_student():
 #1.查询所有学员
 #2.输入学员姓名 查询学员得到查询的学员的序号
 print('1.查询所有学员')
 print('2.查询部分学员')
 num=int(input('请输入操作序号:'))
 while num not in range(1,3):
  num=int(input('选择无效,请重新输入:'))
 if num==1:
  print('**************学员信息列表***************')
  #遍历大列表
  for x in range(0,len(student_list)):
   #根据x的值从大列表中取出小字典
   student=student_list[x]
   #从小字典中取出姓名、年龄、电话
   name=student['name']
   age=student['age']
   phone=student['phone']
   print('序号:%s 姓名:%s 年龄:%s 电话:%s'%(x,name,age,phone))
 else:
  name = input('请输入您要查询的学员姓名:')
  while 1:
   a=False
   for student in student_list:
    if student['name'] == name:
     index = student_list.index(student, 0, 8)
     print('序号:%s 姓名:%s 年龄:%s 电话:%s'%(index,student_list[index]['name'],student_list[index]['age'],
             student_list[index]['phone']))
     a=True
   if a==False:
    name=input('该学员没找到,请重新输入:')
   else:
    break
 
# 修改学员的函数
def update_student():
 #判断是否有学员信息,如果没有,直接结束函数的执行
 if len(student_list)==0:
  print('没有学员信息,无法进行修改操作!')
  #强制结束函数的执行 return下面的代码都不会再执行了
  return
 #1.查询学员信息
 query_student()
 #2.选择要修改的学员序号
 num=input('请选择要修改的学员序号:')
 #3.转换为整数
 num=int(num)
 #4.判断选择的学员序号是否在范围内
 while num not in range(0,len(student_list)):
  #不在范围,重新选择
  num=input('没有该序号,请重选:')
  num=int(num)
 #5.根据选择的序号取出对应的小字典
 student=student_list[num]
 new_name=input('请输入修改后的姓名(%s):'%student['name'])
 new_age=input('请输入修改后的年龄(%s)'%student['age'])
 new_phone=input('请输入修改后的电话(%s)'%student['phone'])
 #6.修改小列表中的数据
 student['name']=new_name
 student['age']=new_age
 student['phone']=new_phone
 print('修改数据完成!')
#删除学员
#1.根据学员序号删除 2.删除所有学员 3.根据学员的姓名来删除(有同名的)
def delete_student():
 if len(student_list)==0:
  print('没有学员信息,无法执行删除操作!')
  return
 print('1.根据学员序号删除')
 print('2.删除所有学员')
 print('3.根据学员姓名删除学员')
 #获取输入的内容并转换为整数类型
 num=int(input('请输入您的选择:'))
 #判断选择的选项是否在范围内
 while num not in range(1,4):
  num=int(input('没有该序号,请重新选择'))
 #判断选择的选项
 if num == 1:
  # 1.查询学员信息
  query_student()
  #2.选择删除的序号
  num=int(input('请输入您要删除的学员序号:'))
  #判断选择序号是否在范围内
  while num not in range(0,len(student_list)):
   num=int(input('序号无效,请重选!'))
  is_del=input('您确定要删除(%s)学员的信息吗?(y/n):'%student_list[num]['name'])
  if is_del=='y':
   #删除列表中的所有数据
   del student_list[num]
   #student_list.pop(index)
   print('%s学员信息删除成功!'%student_list[num]['name'])
  else:
   print('删除数据操作已去取消!')
 elif num==2:
  #确认删除
  is_del=input('您确定要删除所有学员信息吗?y(确定)/n(取消):')
  if is_del=='y':
   #删除列表中的所有数据
   student_list.clear()
   print('所有学员删除成功!')
  else:
   print('删除数据操作已去取消!')
 else:
  name = input('请输入您要删除的学员的姓名:')
  while 1:
   # 定义列表存放不等于name的小列表
   list=[]
   # 遍历大列表
   for student in student_list:
    # 判断输入的name是否和小字典里name的相等
    if student['name']!=name:
     # 找出与name不等的小字典所在的索引
     index=student_list.index(student)
     # 将符合的小字典添加到list列表中
     list.append(student_list[index])
   # 判断两个列表长度是否相等 相等说明大列表中不存在名字为name的小列表
   if len(student_list)==len(list):
    name=input('序号不存在,请重新输入:')
   # 存在符合的小字典
   else:
    # 清空大列表
    student_list.clear()
    # 循环将list列表的内容写入到空的大列表中
    for dict in list:
     student_list.append(dict)
    break
#1.声明一个大列表,存放所有学员信息
student_list=[]
#2.while循环
while True:
 print('***********学员管理系统V2.0**************')
 print('1.添加学员')
 print('2.查询学员')
 print('3.修改学员')
 print('4.删除学员')
 print('0.退出程序')
 print('***************************************')
 #选择操作
 num=input('请选择您的操作:')
 #转换为整数
 num=int(num)
 #判断选择的选项是否在范围内
 while num not in range(0,5):
  #重新选择
  num=input('没有该选项,请重选:')
  #把字符串转换为整数类型
  num=int(num)
 #根据选择的选项执行对应的操作
 if num==1:
  #调用添加学员的函数
  add_student()
 elif num==2:
  #调用查询学员的函数
  query_student()
 elif num==3:
  #调用修改学员的的函数
  update_student()
 elif num==4:
  delete_student()
 else:
  print('程序已结束!')
  break

3.0版本学生管理系统--将学员信息存入文件中

def is_in_range():
 index = input('请选择要(修改)删除的学员序号:')
 index = int(index)
 while index not in range(0, len(student_list)):
  index = input('您输入的序号不在范围内,请重新输入:')
  index = int(index)
 return index
def add_stu():
 name = input('请输入姓名:')
 age = input('请输入年龄:')
 sex = input('请输入性别:')
 person_list = [name, age, sex]
 student_list.append(person_list)
 print('添加成功!')
def alter_stu():
 index=is_in_range()
 person = student_list[index]
 name = person[0]
 age = person[1]
 sex = person[2]
 student_list[index][0] = input('请输入修改后的姓名:(%s):' % name)
 student_list[index][1] = input('请输入修改后的年龄:(%s):' % age)
 student_list[index][2] = input('请输入修改后的性别:(%s)' % sex)
 print('修改成功!')
def see_stu():
 for x in range(0, len(student_list)):
  person = student_list[x]
  name = person[0]
  age = person[1]
  sex = person[2]
  print('序号:%s 姓名:%s 年龄:%s 性别:%s ' % (x, name, age, sex))
def del_stu():
 print('1.删除所有学员')
 print('2.删除选择的学员')
 num = input('请输入您的选择:')
 if num == '1':
  student_list.clear()
 else:
  index = is_in_range()
  del student_list[index]
#声明保存数据的函数
def save_data():
 #1.打开文件
 file_handle=open('student_v2.txt',mode='w')
 #2.for循环遍历大列表
 for student in student_list:
  #把列表中的数据用空格分开拼接成一个字符串
  s=' '.join(student)
  #写入
  file_handle.write(s)
  file_handle.write('\n')
 #3.关闭文件
 file_handle.close()
#引入os模块
import os
#读取文件的函数
def read_data():
 #判断文件是否存在
 rs=os.path.exists('student_v2.txt')
 if rs==True:
  #1.打开文件
  file_handle=open('student_v2.txt',mode='r')
  #2.取出信息
  contents=file_handle.readlines()
  for content in contents:
   #去除/n
   content=content.strip('\n')
   #使用空格分割字符串,得到列表
   list_1=content.split(' ')
   #将小列表添加到大列表中
   student_list.append(list_1)
  # 3.关闭文件
  file_handle.close()
# 声明一个大列表,存放学院的姓名
student_list = []
read_data()
while True:
 print('1.添加学员')
 print('2.修改学员')
 print('3.查询学员')
 print('4.删除学员')
 print('0.退出程序')
 sel_num = input('请输入您要进行的操作:')
 sel_num = int(sel_num)
 # 如果选择的数字不在0~5 继续选择
 while sel_num not in range(0, 5):
  sel_num = input('您的选择无效,请重新选择:')
  sel_num = int(sel_num)
 # 添加学员
 if sel_num == 1:
  add_stu()
  save_data()
 elif sel_num == 2:
  # 1.展示所有学员信息
  see_stu()
  # 2.选择要修改的学员序号
  alter_stu()
  save_data()
 elif sel_num == 3:
  see_stu()
 elif sel_num == 4:
  see_stu()
  # 2.选择要删除的学员序号
  del_stu()
  save_data()
 else:
  break

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

Python 相关文章推荐
一波神奇的Python语句、函数与方法的使用技巧总结
Dec 08 Python
使用Python对Excel进行读写操作
Mar 30 Python
用 Python 爬了爬自己的微信朋友(实例讲解)
Aug 25 Python
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
Jul 27 Python
一文带你了解Python中的字符串是什么
Nov 20 Python
python DataFrame 取差集实例
Jan 30 Python
Python实现监控Nginx配置文件的不同并发送邮件报警功能示例
Feb 26 Python
Python高级property属性用法实例分析
Nov 19 Python
python定间隔取点(np.linspace)的实现
Nov 27 Python
python解析多层json操作示例
Dec 30 Python
pytorch常见的Tensor类型详解
Jan 15 Python
pytorch torchvision.ImageFolder的用法介绍
Feb 20 Python
python3.4控制用户输入与输出的方法
Oct 17 #Python
python学生信息管理系统(完整版)
Apr 05 #Python
python3的输入方式及多组输入方法
Oct 17 #Python
Python3.6使用tesseract-ocr的正确方法
Oct 17 #Python
python学生信息管理系统(初级版)
Oct 17 #Python
学生信息管理系统python版
Oct 17 #Python
python 使用sys.stdin和fileinput读入标准输入的方法
Oct 17 #Python
You might like
php 静态变量的初始化
2009/11/15 PHP
php中截取中文字符串的代码小结
2011/07/17 PHP
php 流程控制switch的简单实例
2016/06/07 PHP
php判断手机浏览还是web浏览,并执行相应的动作简单实例
2016/07/28 PHP
ThinkPHP5 的简单搭建和使用详解
2018/11/15 PHP
JSON+JavaScript处理JSON的简单例子
2013/03/20 Javascript
jquery mobile实现拨打电话功能的几种方法
2013/08/05 Javascript
轻松创建nodejs服务器(7):阻塞操作的实现
2014/12/18 NodeJs
jQuery实现360°全景拖动展示
2015/03/18 Javascript
JS选中checkbox后获取table内一行TD所有数据的方法
2015/07/01 Javascript
Javascript使用post方法提交数据实例
2015/08/03 Javascript
vue实现手机号码抽奖上下滚动动画示例
2017/10/18 Javascript
浅谈webpack4.x 入门(一篇足矣)
2018/09/05 Javascript
vue + typescript + 极验登录验证的实现方法
2019/06/27 Javascript
js实现开关灯效果
2020/03/30 Javascript
原生JS实现留言板功能
2020/02/08 Javascript
vue 项目中当访问路由不存在的时候默认访问404页面操作
2020/08/31 Javascript
vue-axios同时请求多个接口 等所有接口全部加载完成再处理操作
2020/11/09 Javascript
linux下安装easy_install的方法
2013/02/10 Python
Python实现PS滤镜特效Marble Filter玻璃条纹扭曲效果示例
2018/01/29 Python
python互斥锁、加锁、同步机制、异步通信知识总结
2018/02/11 Python
python实现拓扑排序的基本教程
2018/03/11 Python
numpy实现合并多维矩阵、list的扩展方法
2018/05/08 Python
解决python执行不输出系统命令弹框的问题
2019/06/24 Python
如何使用Python 打印各种三角形
2019/06/28 Python
python实现拼接图片
2020/03/23 Python
开业庆典邀请函
2014/01/08 职场文书
优秀党员获奖感言
2014/02/18 职场文书
安全协议书
2014/04/23 职场文书
实习评语大全
2014/04/26 职场文书
爱心捐款倡议书范文
2014/05/12 职场文书
医疗专业毕业生求职信
2014/08/28 职场文书
天河观后感
2015/06/11 职场文书
2020优秀员工演讲稿(三篇)
2019/10/17 职场文书
Python Matplotlib绘制两个Y轴图像
2022/04/13 Python
Mybatis-Plus 使用 @TableField 自动填充日期
2022/04/26 Java/Android