'''
1.分析數(shù)據(jù)結(jié)構(gòu)
學(xué)生管理系統(tǒng)管理系統(tǒng)----->管理的是多個(gè)學(xué)生--->需要容器存儲(chǔ)學(xué)生--->考慮使用那種容器
---->列表?字典能庆?---->系統(tǒng)對(duì)應(yīng)的大的容器是字典--->字典轉(zhuǎn)給你的某一個(gè)key對(duì)應(yīng)的值是所有的
學(xué)生(列表)---->每個(gè)學(xué)生是一個(gè)字典
{'students':[學(xué)生1(字典),學(xué)生2,學(xué)生3...]}
'''
# 聲明所有的key值
key_all_student='students'# 所有學(xué)生
key_name='name'
key_age='age'
key_tel='tel'
key_id='id'
# 當(dāng)前已經(jīng)添加過(guò)的學(xué)生
num=0
# 系統(tǒng)容器
system_info={}
list1=[]
# 1.顯示界面
while True:
print('==========================')
print('歡迎進(jìn)入XXX學(xué)生管理系統(tǒng)')
print('1.添加學(xué)生\n2.查看學(xué)生\n3.刪除學(xué)生\n4.修改學(xué)生信息\n0.退出')
print('==========================')
input_value=input('請(qǐng)輸入:')
# ============退出系統(tǒng)===========
if input_value=='0':
break
# ============添加學(xué)生============
if input_value=='1':
while True:
num+=1
print('添加學(xué)生')
add_name=input('姓名:')
add_age=input('年齡:')
add_tel=input('電話:')
# 產(chǎn)生學(xué)號(hào)
add_id='py1805'+str(num).rjust(3,'0')
#創(chuàng)建一個(gè)學(xué)生(一個(gè)學(xué)生就是一個(gè)字典)
add_student={key_name:add_name,key_age:add_age,key_tel:add_tel,key_id:add_id}
# 獲取存學(xué)生的容器
all_student=system_info.get(key_all_student)
if all_student==None:
all_student=[]
# 添加學(xué)生
all_student.append(add_student)
system_info[key_all_student]=all_student
print('添加學(xué)生%s成功'%(add_name))
print(system_info)
print('1.繼續(xù)添加\n其他:返回上一層')
add_input=input('>>>')
if add_input!='1':
break
else:
continue
continue
# ============查看學(xué)生============
if input_value=='2':
print('查看學(xué)生')
print('1.查看所有的學(xué)生信息')
print('2.根據(jù)學(xué)生姓名查看學(xué)生信息')
print('3.根據(jù)學(xué)生學(xué)號(hào)查看學(xué)生信息')
print('4.返回上一層')
find_input=input('>>>')
if find_input=='4':
continue
'''拿到所有的學(xué)生'''
all_students = system_info.get(key_all_student)
'''系統(tǒng)還沒有添加過(guò)學(xué)生'''
# or 和and的短路操作
if (not all_students) or (not len(all_student)):
print('系統(tǒng)中沒有學(xué)生')
continue
# 查看所有學(xué)生信息
if find_input=='1':
'''有學(xué)生的時(shí)候'''
for student in all_students:
print('姓名:%s腿宰,年齡:%s,電話:%s,學(xué)號(hào):%s'%\
(student[key_name],student[key_age],student[key_tel],\
student[key_id]))
# 根據(jù)學(xué)生姓名查找
elif find_input=='2':
find_name=input('請(qǐng)輸入要查看的學(xué)生的名字')
flag=True#是否找不到學(xué)生
for student in all_students:
if find_name==student[key_name]:
print('姓名:%s蜡秽,年齡:%s,電話:%s业岁,學(xué)號(hào):%s' % \
(student[key_name], student[key_age], student[key_tel], \
student[key_id]))
flag=False
if flag:
print('找不到該學(xué)生信息')
# 根據(jù)學(xué)生學(xué)號(hào)查找
elif find_input=='3':
find_id = input('請(qǐng)輸入要查看的學(xué)生的id')
flag=True
for student in all_students:
if find_id == student[key_id]:
print('姓名:%s勇边,年齡:%s,電話:%s横腿,學(xué)號(hào):%s' % \
(student[key_name], student[key_age], student[key_tel], \
student[key_id]))
flag=False
if flag:
print('找不到該學(xué)生信息')
# 返回上一層
else:
pass
continue
# =============刪除學(xué)生=============
if input_value=='3':
while True:
print('1.按姓名刪除學(xué)生')
print('2.按學(xué)號(hào)刪除學(xué)生')
print('3.返回')
del_input=input("請(qǐng)輸入(1,2,3)")
if del_input=='3':
break
# 把所有學(xué)生找出來(lái)
all_students = system_info.get(key_all_student)
if (not all_students) or (not len(all_students)):
print('該系統(tǒng)沒有學(xué)生')
break
if del_input=='1':
list2=[]
del_name=input('請(qǐng)輸入要?jiǎng)h除學(xué)生的姓名')
for student in all_students:
if del_name==student[key_name]:
# 保存可能要?jiǎng)h除的學(xué)生
list2.append(student)
if not len(list2):
print('沒有找到匹配的學(xué)生')
continue
for x in range(len(list2)):
print(x,list2[x])
del_num=int(input('請(qǐng)選擇要?jiǎng)h除的學(xué)生的編號(hào):'))
del_student=list2[del_num]
system_info[key_all_student].remove(del_student)
if del_input=='2':
find_number=input('請(qǐng)輸入要?jiǎng)h除學(xué)生的學(xué)號(hào)')
num=0
for student in all_students[:]:
if find_number==student[key_id]:
all_students.remove(student)
num+=1
if num==0:
print('沒有找到匹配的學(xué)生')
continue
continue
# ===========修改學(xué)生信息============
if input_value == '4':
while True:
print('1.按姓名修改學(xué)生')
print('2.按學(xué)號(hào)修改學(xué)生')
print('3.返回')
all_students=system_info.get(key_all_student)
if (not all_students) or (not len(all_students)):
print('系統(tǒng)沒有任何學(xué)生信息')
break
input_num=input('請(qǐng)選擇查詢方式:')
if input_num=='1':
find_name = input('請(qǐng)輸入將要修改學(xué)生的名字:')
list3=[]
num8=0
for student in all_students:
if find_name==student[key_name]:
list3.append(student)
num8+=1
if num8==0:
print('沒有找到匹配的學(xué)生:')
continue
for x in range(len(list3)):
print(x,list3[x])
find_num=int(input('請(qǐng)選擇要修改的學(xué)生:'))
while True:
find_type=input('請(qǐng)選擇要修改的項(xiàng)')
values=input('請(qǐng)輸入修改內(nèi)容:')
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('沒有找到匹配的項(xiàng)')
continue
if input_num=='2':
num7=0
find_id = input('請(qǐng)輸入將要修改學(xué)生的學(xué)號(hào):')
for student in all_students:
if student[key_id]==find_id:
print('已找到該學(xué)生:')
update_key=input('請(qǐng)輸入修改項(xiàng):')
update_value = input('請(qǐng)輸入修改值:')
student[update_key]=update_value
print(all_students)
num7 += 1
if num7==0:
print('沒有找到匹配的學(xué)生')
continue
if input_num=='3':
break
continue
結(jié)果:
D:\Python項(xiàng)目\Day5-練習(xí)和列表\code\venv\Scripts\python.exe D:/Python項(xiàng)目/Day7-函數(shù)/code/01-學(xué)生管理系統(tǒng).py
==========================
歡迎進(jìn)入XXX學(xué)生管理系統(tǒng)
1.添加學(xué)生
2.查看學(xué)生
3.刪除學(xué)生
4.修改學(xué)生信息
0.退出
==========================
請(qǐng)輸入:1
添加學(xué)生
姓名:we
年齡:23
電話:34
添加學(xué)生we成功
{'students': [{'name': 'we', 'age': '23', 'tel': '34', 'id': 'py1805001'}]}
1.繼續(xù)添加
其他:返回上一層1
添加學(xué)生
姓名:we
年齡:56
電話:67
添加學(xué)生we成功
{'students': [{'name': 'we', 'age': '23', 'tel': '34', 'id': 'py1805001'}, {'name': 'we', 'age': '56', 'tel': '67', 'id': 'py1805002'}]}
1.繼續(xù)添加
其他:返回上一層
1
添加學(xué)生
姓名:we
年齡:89
電話:90
添加學(xué)生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.繼續(xù)添加
其他:返回上一層
2
==========================
歡迎進(jìn)入XXX學(xué)生管理系統(tǒng)
1.添加學(xué)生
2.查看學(xué)生
3.刪除學(xué)生
4.修改學(xué)生信息
0.退出
==========================
請(qǐng)輸入:2
查看學(xué)生
1.查看所有的學(xué)生信息
2.根據(jù)學(xué)生姓名查看學(xué)生信息
3.根據(jù)學(xué)生學(xué)號(hào)查看學(xué)生信息
4.返回上一層
1
姓名:we颓屑,年齡:23,電話:34耿焊,學(xué)號(hào):py1805001
姓名:we揪惦,年齡:56,電話:67罗侯,學(xué)號(hào):py1805002
姓名:we器腋,年齡:89,電話:90,學(xué)號(hào):py1805003
==========================
歡迎進(jìn)入XXX學(xué)生管理系統(tǒng)
1.添加學(xué)生
2.查看學(xué)生
3.刪除學(xué)生
4.修改學(xué)生信息
0.退出
==========================
請(qǐng)輸入:2
查看學(xué)生
1.查看所有的學(xué)生信息
2.根據(jù)學(xué)生姓名查看學(xué)生信息
3.根據(jù)學(xué)生學(xué)號(hào)查看學(xué)生信息
4.返回上一層
2
請(qǐng)輸入要查看的學(xué)生的名字we
姓名:we纫塌,年齡:23诊县,電話:34,學(xué)號(hào):py1805001
姓名:we措左,年齡:56依痊,電話:67,學(xué)號(hào):py1805002
姓名:we媳荒,年齡:89抗悍,電話:90驹饺,學(xué)號(hào):py1805003
==========================
歡迎進(jìn)入XXX學(xué)生管理系統(tǒng)
1.添加學(xué)生
2.查看學(xué)生
3.刪除學(xué)生
4.修改學(xué)生信息
0.退出
==========================
請(qǐng)輸入:2
查看學(xué)生
1.查看所有的學(xué)生信息
2.根據(jù)學(xué)生姓名查看學(xué)生信息
3.根據(jù)學(xué)生學(xué)號(hào)查看學(xué)生信息
4.返回上一層
3
請(qǐng)輸入要查看的學(xué)生的idpy1805003
姓名:we钳枕,年齡:89,電話:90赏壹,學(xué)號(hào):py1805003
==========================
歡迎進(jìn)入XXX學(xué)生管理系統(tǒng)
1.添加學(xué)生
2.查看學(xué)生
3.刪除學(xué)生
4.修改學(xué)生信息
0.退出
==========================
請(qǐng)輸入:3
1.按姓名刪除學(xué)生
2.按學(xué)號(hào)刪除學(xué)生
3.返回
請(qǐng)輸入(1,2,3)3
==========================
歡迎進(jìn)入XXX學(xué)生管理系統(tǒng)
1.添加學(xué)生
2.查看學(xué)生
3.刪除學(xué)生
4.修改學(xué)生信息
0.退出
==========================
請(qǐng)輸入:4
1.按姓名修改學(xué)生
2.按學(xué)號(hào)修改學(xué)生
3.返回
請(qǐng)選擇查詢方式:1
請(qǐng)輸入將要修改學(xué)生的名字: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'}
請(qǐng)選擇要修改的學(xué)生:0
請(qǐng)選擇要修改的項(xiàng)age
請(qǐng)輸入修改內(nèi)容: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.按姓名修改學(xué)生
2.按學(xué)號(hào)修改學(xué)生
3.返回
請(qǐng)選擇查詢方式:2
請(qǐng)輸入將要修改學(xué)生的學(xué)號(hào):py1805002
已找到該學(xué)生:
請(qǐng)輸入修改項(xiàng):age
請(qǐng)輸入修改值: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.按姓名修改學(xué)生
2.按學(xué)號(hào)修改學(xué)生2
請(qǐng)輸入要查看的學(xué)生的名字we
姓名:we鱼炒,年齡:23,電話:34蝌借,學(xué)號(hào):py1805001
姓名:we昔瞧,年齡:56,電話:67菩佑,學(xué)號(hào):py1805002
姓名:we自晰,年齡:89,電話:90稍坯,學(xué)號(hào):py1805003
==========================
歡迎進(jìn)入XXX學(xué)生管理系統(tǒng)
1.添加學(xué)生
2.查看學(xué)生
3.刪除學(xué)生
4.修改學(xué)生信息
0.退出
==========================
請(qǐng)輸入:2
查看學(xué)生
1.查看所有的學(xué)生信息
2.根據(jù)學(xué)生姓名查看學(xué)生信息
3.根據(jù)學(xué)生學(xué)號(hào)查看學(xué)生信息
4.返回上一層
>>>3
請(qǐng)輸入要查看的學(xué)生的idpy1805003
姓名:we酬荞,年齡:89,電話:90瞧哟,學(xué)號(hào):py1805003
==========================
歡迎進(jìn)入XXX學(xué)生管理系統(tǒng)
1.添加學(xué)生
2.查看學(xué)生
3.刪除學(xué)生
4.修改學(xué)生信息
0.退出
==========================
請(qǐng)輸入:3
1.按姓名刪除學(xué)生
2.按學(xué)號(hào)刪除學(xué)生
3.返回
請(qǐng)輸入(1,2,3)3
==========================
歡迎進(jìn)入XXX學(xué)生管理系統(tǒng)
1.添加學(xué)生
2.查看學(xué)生
3.刪除學(xué)生
4.修改學(xué)生信息
0.退出
==========================
請(qǐng)輸入:4
1.按姓名修改學(xué)生
2.按學(xué)號(hào)修改學(xué)生
3.返回
請(qǐng)選擇查詢方式:1
請(qǐng)輸入將要修改學(xué)生的名字: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'}
請(qǐng)選擇要修改的學(xué)生:0
請(qǐng)選擇要修改的項(xiàng)age
請(qǐng)輸入修改內(nèi)容: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.按姓名修改學(xué)生
2.按學(xué)號(hào)修改學(xué)生
3.返回
請(qǐng)選擇查詢方式:2
請(qǐng)輸入將要修改學(xué)生的學(xué)號(hào):py1805002
已找到該學(xué)生:
請(qǐng)輸入修改項(xiàng):age
請(qǐng)輸入修改值: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.按姓名修改學(xué)生
2.按學(xué)號(hào)修改學(xué)生
3.返回
請(qǐng)選擇查詢方式:3
==========================
歡迎進(jìn)入XXX學(xué)生管理系統(tǒng)
1.添加學(xué)生
2.查看學(xué)生
3.刪除學(xué)生
4.修改學(xué)生信息
0.退出
==========================
請(qǐng)輸入:3
1.按姓名刪除學(xué)生
2.按學(xué)號(hào)刪除學(xué)生
3.返回
請(qǐng)輸入(1,2,3)1
請(qǐng)輸入要?jiǎng)h除學(xué)生的姓名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'}
請(qǐng)選擇要?jiǎng)h除的學(xué)生的編號(hào):0
1.按姓名刪除學(xué)生
2.按學(xué)號(hào)刪除學(xué)生
3.返回
請(qǐng)輸入(1,2,3)2
請(qǐng)輸入要?jiǎng)h除學(xué)生的學(xué)號(hào)py1805003
1.按姓名刪除學(xué)生
2.按學(xué)號(hào)刪除學(xué)生
3.返回
請(qǐng)輸入(1,2,3)
1.按姓名刪除學(xué)生
2.按學(xué)號(hào)刪除學(xué)生
3.返回
請(qǐng)輸入(1,2,3)3
==========================
歡迎進(jìn)入XXX學(xué)生管理系統(tǒng)
1.添加學(xué)生
2.查看學(xué)生
3.刪除學(xué)生
4.修改學(xué)生信息
0.退出
==========================
請(qǐng)輸入:2
查看學(xué)生
1.查看所有的學(xué)生信息
2.根據(jù)學(xué)生姓名查看學(xué)生信息
3.根據(jù)學(xué)生學(xué)號(hào)查看學(xué)生信息
4.返回上一層
1
姓名:we混巧,年齡:65,電話:67勤揩,學(xué)號(hào):py1805002
==========================
歡迎進(jìn)入XXX學(xué)生管理系統(tǒng)
1.添加學(xué)生
2.查看學(xué)生
3.刪除學(xué)生
4.修改學(xué)生信息
0.退出
==========================
請(qǐng)輸入:0
Process finished with exit code 0