基于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从零实现贝叶斯分类器的机器学习的教程
Mar 31 Python
python创建一个最简单http webserver服务器的方法
May 08 Python
Python中的默认参数详解
Jun 24 Python
Python的collections模块中的OrderedDict有序字典
Jul 07 Python
如何将python中的List转化成dictionary
Aug 15 Python
Python字典简介以及用法详解
Nov 15 Python
python+opencv+caffe+摄像头做目标检测的实例代码
Aug 03 Python
Python函数any()和all()的用法及区别介绍
Sep 14 Python
Python装饰器语法糖
Jan 02 Python
python七夕浪漫表白源码
Apr 05 Python
python修改文件内容的3种方法详解
Nov 15 Python
python统计mysql数据量变化并调用接口告警的示例代码
Sep 21 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三元运算符知识汇总
2015/07/02 PHP
浅谈PHP中的错误处理和异常处理
2017/02/04 PHP
确保Laravel网站不会被嵌入到其他站点中的方法
2019/10/18 PHP
JSON 和 JavaScript eval使用说明
2010/06/13 Javascript
JS获取select-option-text_value的方法
2013/12/26 Javascript
不同编码的页面表单数据乱码问题解决方法
2015/02/15 Javascript
js实现微信分享代码
2020/10/11 Javascript
Select2.js下拉框使用小结
2016/10/24 Javascript
jquery 实时监听输入框值变化的完美方法(必看)
2017/01/26 Javascript
详解Vue.directive 自定义指令
2019/03/27 Javascript
NodeJs实现简易WEB上传下载服务器
2019/08/10 NodeJs
微信小程序pinker组件使用实现自动相减日期
2020/05/07 Javascript
JavaScript鼠标悬停事件用法解析
2020/05/15 Javascript
[51:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python中字典(dict)和列表(list)的排序方法实例
2014/06/16 Python
一个计算身份证号码校验位的Python小程序
2014/08/15 Python
在Python中使用第三方模块的教程
2015/04/27 Python
各个系统下的Python解释器相关安装方法
2015/10/12 Python
pip install urllib2不能安装的解决方法
2018/06/12 Python
Django中的ajax请求
2018/10/19 Python
django基于cors解决跨域请求问题详解
2019/08/06 Python
更新pip3与pyttsx3文字语音转换的实现方法
2019/08/08 Python
python网络编程 使用UDP、TCP协议收发信息详解
2019/08/29 Python
解决Pytorch 加载训练好的模型 遇到的error问题
2020/01/10 Python
python各层级目录下import方法代码实例
2020/01/20 Python
python能做哪些生活有趣的事情
2020/09/09 Python
Python爬虫之Selenium库的使用方法
2021/01/03 Python
CSS3动画animation实现云彩向左滚动
2014/05/09 HTML / CSS
日本最大的旅游网站:Rakuten Travel(乐天旅游)
2018/08/02 全球购物
加利福尼亚州威尼斯的女性奢侈品设计师服装和概念店:Mona Moore
2018/09/13 全球购物
介绍一下代理模式(Proxy)
2014/10/17 面试题
英语专业毕业个人求职自荐信
2013/09/21 职场文书
竞选班干部的演讲稿
2014/04/24 职场文书
公司辞职信模板
2015/05/13 职场文书
CSS文本阴影 text-shadow 悬停效果详解
2022/05/25 HTML / CSS
Spring IOC容器Bean的作用域及生命周期实例
2022/05/30 Java/Android