网络编程
位置:首页>> 网络编程>> Python编程>> 基于python实现学生管理系统

基于python实现学生管理系统

作者:dayun555  发布时间:2021-11-24 21:07:48 

标签:python,学生管理,管理系统

本文为大家分享了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

来源:https://blog.csdn.net/dayun555/article/details/79154365?utm_source=blogxgwz5

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com