基于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访问抓取网页常用命令总结
Apr 11 Python
Python实现脚本锁功能(同时只能执行一个脚本)
May 10 Python
基于Python和Scikit-Learn的机器学习探索
Oct 16 Python
python3 读写文件换行符的方法
Apr 09 Python
windows下添加Python环境变量的方法汇总
May 14 Python
python3 property装饰器实现原理与用法示例
May 15 Python
Python3 Tkinter选择路径功能的实现方法
Jun 14 Python
PyQt5笔记之弹出窗口大全
Jun 20 Python
python opencv 图像拼接的实现方法
Jun 27 Python
python通过实例讲解反射机制
Oct 17 Python
pandas中遍历dataframe的每一个元素的实现
Oct 23 Python
4款Python 类型检查工具,你选择哪个呢?
Oct 30 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
PHP5与MySQL数据库操作常用代码 收集
2010/03/21 PHP
PHP中preg_match正则匹配中的/u、/i、/s含义
2015/04/17 PHP
php使用curl通过代理获取数据的实现方法
2016/05/16 PHP
php判断手机浏览还是web浏览,并执行相应的动作简单实例
2016/07/28 PHP
PHP身份证校验码计算方法
2016/08/10 PHP
PHP Oauth授权和本地加密实现方法
2016/08/12 PHP
php使用SAE原生Mail类实现各种类型邮件发送的方法
2016/10/10 PHP
php删除二维数组中的重复值方法
2018/03/12 PHP
Laravel监听数据库访问,打印SQL的例子
2019/10/24 PHP
JavaScript 新手24条实用建议[TUTS+]
2009/06/21 Javascript
离开页面时检测表单元素是否被修改,提示保存的js代码
2010/08/25 Javascript
jQuery数据显示插件整合实现代码
2011/10/24 Javascript
解决JS浮点数运算出现Bug的方法
2013/03/12 Javascript
js toFixed()方法的重写实现精度的统一
2014/03/06 Javascript
JavaScript获得url所有参数键值表的方法
2015/03/21 Javascript
JavaScript搜索字符串并将搜索结果返回到字符串的方法
2015/04/06 Javascript
javascript框架设计之浏览器的嗅探和特征侦测
2015/06/23 Javascript
真正好用的js验证上传文件大小的简单方法
2016/10/27 Javascript
JSON中key动态设置及JSON.parse和JSON.stringify()的区别
2016/12/29 Javascript
jQuery使用ajax方法解析返回的json数据功能示例
2017/01/10 Javascript
JavaScript正则表达式和级联效果
2017/09/14 Javascript
纯JS实现出生日期[年月日]下拉菜单效果
2018/06/01 Javascript
微信小程序拼接图片链接无底洞深入探究
2019/09/03 Javascript
在vue中使用cookie记住用户上次选择的实例(本次例子中为下拉框)
2020/09/11 Javascript
python开启摄像头以及深度学习实现目标检测方法
2018/08/03 Python
Django框架静态文件处理、中间件、上传文件操作实例详解
2020/02/29 Python
python模拟斗地主发牌
2020/04/22 Python
Html5内唤醒百度、高德APP的实现示例
2019/05/20 HTML / CSS
HTML5之SVG 2D入门12—SVG DOM及DOM操作介绍
2013/01/30 HTML / CSS
迪拜领先运动补剂零售品牌中文站:Sporter商城
2019/08/20 全球购物
七年级作文之游记
2019/12/11 职场文书
完美处理python与anaconda环境变量的冲突问题
2021/04/07 Python
pytorch损失反向传播后梯度为none的问题
2021/05/12 Python
MySQL 外键约束和表关系相关总结
2021/06/20 MySQL
React列表栏及购物车组件使用详解
2021/06/28 Javascript
GTX1660显卡搭配显示器推荐
2022/04/19 数码科技