'''
1.分析数据结构
学生管理系统管理系统----->管理的是多个学生--->需要容器存储学生--->考虑使用那种容器
---->列表?字典?---->系统对应的大的容器是字典--->字典转给你的某一个key对应的值是所有的
学生(列表)---->每个学生是一个字典
{'students':[学生1(字典),学生2,学生3...]}
'''
# 声明所有的key值
key_all_student='students'# 所有学生
key_name='name'
key_age='age'
key_tel='tel'
key_id='id'
# 当前已经添加过的学生
num=0
# 系统容器
system_info={}
list1=[]
# 1.显示界面
while True:
print('==========================')
print('欢迎进入XXX学生管理系统')
print('1.添加学生\n2.查看学生\n3.删除学生\n4.修改学生信息\n0.退出')
print('==========================')
input_value=input('请输入:')
# ============退出系统===========
if input_value=='0':
break
# ============添加学生============
if input_value=='1':
while True:
num+=1
print('添加学生')
add_name=input('姓名:')
add_age=input('年龄:')
add_tel=input('电话:')
# 产生学号
add_id='py1805'+str(num).rjust(3,'0')
#创建一个学生(一个学生就是一个字典)
add_student={key_name:add_name,key_age:add_age,key_tel:add_tel,key_id:add_id}
# 获取存学生的容器
all_student=system_info.get(key_all_student)
if all_student==None:
all_student=[]
# 添加学生
all_student.append(add_student)
system_info[key_all_student]=all_student
print('添加学生%s成功'%(add_name))
print(system_info)
print('1.继续添加\n其他:返回上一层')
add_input=input('>>>')
if add_input!='1':
break
else:
continue
continue
# ============查看学生============
if input_value=='2':
print('查看学生')
print('1.查看所有的学生信息')
print('2.根据学生姓名查看学生信息')
print('3.根据学生学号查看学生信息')
print('4.返回上一层')
find_input=input('>>>')
if find_input=='4':
continue
'''拿到所有的学生'''
all_students = system_info.get(key_all_student)
'''系统还没有添加过学生'''
# or 和and的短路操作
if (not all_students) or (not len(all_student)):
print('系统中没有学生')
continue
# 查看所有学生信息
if find_input=='1':
'''有学生的时候'''
for student in all_students:
print('姓名:%s,年龄:%s,电话:%s,学号:%s'%\
(student[key_name],student[key_age],student[key_tel],\
student[key_id]))
# 根据学生姓名查找
elif find_input=='2':
find_name=input('请输入要查看的学生的名字')
flag=True#是否找不到学生
for student in all_students:
if find_name==student[key_name]:
print('姓名:%s,年龄:%s,电话:%s,学号:%s' % \
(student[key_name], student[key_age], student[key_tel], \
student[key_id]))
flag=False
if flag:
print('找不到该学生信息')
# 根据学生学号查找
elif find_input=='3':
find_id = input('请输入要查看的学生的id')
flag=True
for student in all_students:
if find_id == student[key_id]:
print('姓名:%s,年龄:%s,电话:%s,学号:%s' % \
(student[key_name], student[key_age], student[key_tel], \
student[key_id]))
flag=False
if flag:
print('找不到该学生信息')
# 返回上一层
else:
pass
continue
# =============删除学生=============
if input_value=='3':
while True:
print('1.按姓名删除学生')
print('2.按学号删除学生')
print('3.返回')
del_input=input("请输入(1,2,3)")
if del_input=='3':
break
# 把所有学生找出来
all_students = system_info.get(key_all_student)
if (not all_students) or (not len(all_students)):
print('该系统没有学生')
break
if del_input=='1':
list2=[]
del_name=input('请输入要删除学生的姓名')
for student in all_students:
if del_name==student[key_name]:
# 保存可能要删除的学生
list2.append(student)
if not len(list2):
print('没有找到匹配的学生')
continue
for x in range(len(list2)):
print(x,list2[x])
del_num=int(input('请选择要删除的学生的编号:'))
del_student=list2[del_num]
system_info[key_all_student].remove(del_student)
if del_input=='2':
find_number=input('请输入要删除学生的学号')
num=0
for student in all_students[:]:
if find_number==student[key_id]:
all_students.remove(student)
num+=1
if num==0:
print('没有找到匹配的学生')
continue
continue
# ===========修改学生信息============
if input_value == '4':
while True:
print('1.按姓名修改学生')
print('2.按学号修改学生')
print('3.返回')
all_students=system_info.get(key_all_student)
if (not all_students) or (not len(all_students)):
print('系统没有任何学生信息')
break
input_num=input('请选择查询方式:')
if input_num=='1':
find_name = input('请输入将要修改学生的名字:')
list3=[]
num8=0
for student in all_students:
if find_name==student[key_name]:
list3.append(student)
num8+=1
if num8==0:
print('没有找到匹配的学生:')
continue
for x in range(len(list3)):
print(x,list3[x])
find_num=int(input('请选择要修改的学生:'))
while True:
find_type=input('请选择要修改的项')
values=input('请输入修改内容:')
num6=0
for student in all_students:
if student==list3[find_num]:
student[find_type]=values
print(all_students)
num6+=1
break
if num6==0:
print('没有找到匹配的项')
continue
if input_num=='2':
num7=0
find_id = input('请输入将要修改学生的学号:')
for student in all_students:
if student[key_id]==find_id:
print('已找到该学生:')
update_key=input('请输入修改项:')
update_value = input('请输入修改值:')
student[update_key]=update_value
print(all_students)
num7 += 1
if num7==0:
print('没有找到匹配的学生')
continue
if input_num=='3':
break
continue
结果:
D:\Python项目\Day5-练习和列表\code\venv\Scripts\python.exe D:/Python项目/Day7-函数/code/01-学生管理系统.py
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:1
添加学生
姓名:we
年龄:23
电话:34
添加学生we成功
{'students': [{'name': 'we', 'age': '23', 'tel': '34', 'id': 'py1805001'}]}
1.继续添加
其他:返回上一层1
添加学生
姓名:we
年龄:56
电话:67
添加学生we成功
{'students': [{'name': 'we', 'age': '23', 'tel': '34', 'id': 'py1805001'}, {'name': 'we', 'age': '56', 'tel': '67', 'id': 'py1805002'}]}
1.继续添加
其他:返回上一层
1
添加学生
姓名:we
年龄:89
电话:90
添加学生we成功
{'students': [{'name': 'we', 'age': '23', 'tel': '34', 'id': 'py1805001'}, {'name': 'we', 'age': '56', 'tel': '67', 'id': 'py1805002'}, {'name': 'we', 'age': '89', 'tel': '90', 'id': 'py1805003'}]}
1.继续添加
其他:返回上一层
2
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:2
查看学生
1.查看所有的学生信息
2.根据学生姓名查看学生信息
3.根据学生学号查看学生信息
4.返回上一层
1
姓名:we,年龄:23,电话:34,学号:py1805001
姓名:we,年龄:56,电话:67,学号:py1805002
姓名:we,年龄:89,电话:90,学号:py1805003
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:2
查看学生
1.查看所有的学生信息
2.根据学生姓名查看学生信息
3.根据学生学号查看学生信息
4.返回上一层
2
请输入要查看的学生的名字we
姓名:we,年龄:23,电话:34,学号:py1805001
姓名:we,年龄:56,电话:67,学号:py1805002
姓名:we,年龄:89,电话:90,学号:py1805003
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:2
查看学生
1.查看所有的学生信息
2.根据学生姓名查看学生信息
3.根据学生学号查看学生信息
4.返回上一层
3
请输入要查看的学生的idpy1805003
姓名:we,年龄:89,电话:90,学号:py1805003
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:3
1.按姓名删除学生
2.按学号删除学生
3.返回
请输入(1,2,3)3
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:4
1.按姓名修改学生
2.按学号修改学生
3.返回
请选择查询方式:1
请输入将要修改学生的名字:we
0 {'name': 'we', 'age': '23', 'tel': '34', 'id': 'py1805001'}
1 {'name': 'we', 'age': '56', 'tel': '67', 'id': 'py1805002'}
2 {'name': 'we', 'age': '89', 'tel': '90', 'id': 'py1805003'}
请选择要修改的学生:0
请选择要修改的项age
请输入修改内容:32
[{'name': 'we', 'age': '32', 'tel': '34', 'id': 'py1805001'}, {'name': 'we', 'age': '56', 'tel': '67', 'id': 'py1805002'}, {'name': 'we', 'age': '89', 'tel': '90', 'id': 'py1805003'}]
1.按姓名修改学生
2.按学号修改学生
3.返回
请选择查询方式:2
请输入将要修改学生的学号:py1805002
已找到该学生:
请输入修改项:age
请输入修改值:65
[{'name': 'we', 'age': '32', 'tel': '34', 'id': 'py1805001'}, {'name': 'we', 'age': '65', 'tel': '67', 'id': 'py1805002'}, {'name': 'we', 'age': '89', 'tel': '90', 'id': 'py1805003'}]
1.按姓名修改学生
2.按学号修改学生2
请输入要查看的学生的名字we
姓名:we,年龄:23,电话:34,学号:py1805001
姓名:we,年龄:56,电话:67,学号:py1805002
姓名:we,年龄:89,电话:90,学号:py1805003
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:2
查看学生
1.查看所有的学生信息
2.根据学生姓名查看学生信息
3.根据学生学号查看学生信息
4.返回上一层
>>>3
请输入要查看的学生的idpy1805003
姓名:we,年龄:89,电话:90,学号:py1805003
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:3
1.按姓名删除学生
2.按学号删除学生
3.返回
请输入(1,2,3)3
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:4
1.按姓名修改学生
2.按学号修改学生
3.返回
请选择查询方式:1
请输入将要修改学生的名字:we
0 {'name': 'we', 'age': '23', 'tel': '34', 'id': 'py1805001'}
1 {'name': 'we', 'age': '56', 'tel': '67', 'id': 'py1805002'}
2 {'name': 'we', 'age': '89', 'tel': '90', 'id': 'py1805003'}
请选择要修改的学生:0
请选择要修改的项age
请输入修改内容:32
[{'name': 'we', 'age': '32', 'tel': '34', 'id': 'py1805001'}, {'name': 'we', 'age': '56', 'tel': '67', 'id': 'py1805002'}, {'name': 'we', 'age': '89', 'tel': '90', 'id': 'py1805003'}]
1.按姓名修改学生
2.按学号修改学生
3.返回
请选择查询方式:2
请输入将要修改学生的学号:py1805002
已找到该学生:
请输入修改项:age
请输入修改值:65
[{'name': 'we', 'age': '32', 'tel': '34', 'id': 'py1805001'}, {'name': 'we', 'age': '65', 'tel': '67', 'id': 'py1805002'}, {'name': 'we', 'age': '89', 'tel': '90', 'id': 'py1805003'}]
1.按姓名修改学生
2.按学号修改学生
3.返回
请选择查询方式:3
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:3
1.按姓名删除学生
2.按学号删除学生
3.返回
请输入(1,2,3)1
请输入要删除学生的姓名we
0 {'name': 'we', 'age': '32', 'tel': '34', 'id': 'py1805001'}
1 {'name': 'we', 'age': '65', 'tel': '67', 'id': 'py1805002'}
2 {'name': 'we', 'age': '89', 'tel': '90', 'id': 'py1805003'}
请选择要删除的学生的编号:0
1.按姓名删除学生
2.按学号删除学生
3.返回
请输入(1,2,3)2
请输入要删除学生的学号py1805003
1.按姓名删除学生
2.按学号删除学生
3.返回
请输入(1,2,3)
1.按姓名删除学生
2.按学号删除学生
3.返回
请输入(1,2,3)3
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:2
查看学生
1.查看所有的学生信息
2.根据学生姓名查看学生信息
3.根据学生学号查看学生信息
4.返回上一层
1
姓名:we,年龄:65,电话:67,学号:py1805002
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:0
Process finished with exit code 0