基于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 相关文章推荐
Google开源的Python格式化工具YAPF的安装和使用教程
May 31 Python
python实现读Excel写入.txt的方法
Apr 29 Python
Django实现简单网页弹出警告代码
Nov 15 Python
numpy 返回函数的上三角矩阵实例
Nov 25 Python
python获取依赖包和安装依赖包教程
Feb 13 Python
利用Python制作动态排名图的实现代码
Apr 09 Python
详解python安装matplotlib库三种失败情况
Jul 28 Python
python修改微信和支付宝步数的示例代码
Oct 12 Python
python通用数据库操作工具 pydbclib的使用简介
Dec 21 Python
python正则表达式re.match()匹配多个字符方法的实现
Jan 27 Python
python 如何在测试中使用 Mock
Mar 01 Python
Python中的min及返回最小值索引的操作
May 10 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
用IE远程创建Mysql数据库的简易程序
2006/10/09 PHP
PHP时间格式控制符对照表分享
2013/07/23 PHP
php使浏览器直接下载pdf文件的方法
2013/11/15 PHP
PHP设计模式之观察者模式(Observer)详细介绍和代码实例
2014/04/08 PHP
8个PHP数组面试题
2015/06/23 PHP
thinkphp3.2实现上传图片的控制器方法
2016/04/28 PHP
php 后端实现JWT认证方法示例
2018/09/04 PHP
jquery获取被勾选的checked(选中)的那一行的3列和4列的值
2013/07/04 Javascript
使用mini-define实现前端代码的模块化管理
2014/12/25 Javascript
深入理解JavaScript中的对象
2015/06/04 Javascript
JS实现网页标题栏显示当前时间和日期的完整代码
2015/11/02 Javascript
JS获取字符串实际长度(包含汉字)的简单方法
2016/08/11 Javascript
JavaScript中三个等号和两个等号的区别(== 和 ===)浅析
2016/09/22 Javascript
js封装tab标签页实例分享
2016/12/19 Javascript
socket.io学习教程之深入学习篇(三)
2017/04/29 Javascript
D3.js(v3)+react 实现带坐标与比例尺的散点图 (V3版本)
2019/05/09 Javascript
Vue中的transition封装组件的实现方法
2019/08/13 Javascript
vue中注册自定义的全局js方法
2019/11/15 Javascript
jQuery+css实现的点击图片放大缩小预览功能示例【图片预览 查看大图】
2020/05/29 jQuery
Python对象转JSON字符串的方法
2016/04/27 Python
人工智能最火编程语言 Python大战Java!
2017/11/13 Python
python实现读取excel写入mysql的小工具详解
2017/11/20 Python
django自带的server 让外网主机访问方法
2018/05/14 Python
Django url,从一个页面调到另个页面的方法
2019/08/21 Python
python3文件复制、延迟文件复制任务的实现方法
2019/09/02 Python
python快速排序的实现及运行时间比较
2019/11/22 Python
tensorflow 变长序列存储实例
2020/01/20 Python
Python实现猜年龄游戏代码实例
2020/03/25 Python
python 使用递归的方式实现语义图片分割功能
2020/07/16 Python
Python之qq自动发消息的示例代码
2021/02/18 Python
Desigual德国官网:在线购买原创服装
2018/03/27 全球购物
乌克兰排名第一的在线旅游超市:Farvater.Travel
2020/01/02 全球购物
心理学专业毕业生推荐信范文
2013/11/21 职场文书
大学生职业生涯规划方案
2014/01/03 职场文书
清洁工岗位职责
2014/01/29 职场文书
职工擅自离岗检讨书
2014/09/23 职场文书