1.分析數(shù)據(jù)結(jié)構(gòu)
學(xué)生管理系統(tǒng)管理學(xué)生----> 管理的是多個(gè)學(xué)生 ----> 需要容器存儲(chǔ)學(xué)生 ---> 考慮使用哪種容器
--->列表佩抹?字典?---> 系統(tǒng)對(duì)應(yīng)的大的容器是字典 ---> 字典中的某一個(gè)key對(duì)應(yīng)的值是所有的學(xué)生(用了表作為容器)
--->每一個(gè)學(xué)生是一個(gè)字典
{'students':[學(xué)生1取董, 學(xué)生2棍苹, 學(xué)生3....]}
"""
# 聲明所有的key值
key_all_student = 'students' # 所有學(xué)生
key_name = 'student_name'
key_age = 'age'
key_tel = 'tel'
key_id = 'id'
# 系統(tǒng)容器
system_info = {}
# 當(dāng)前已經(jīng)添加過(guò)的學(xué)生人數(shù)
number = 0
# 系統(tǒng)入口
while True:
# ============顯示主頁(yè)==============
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:
print('==添加學(xué)生==')
# 輸入信息
add_name = input('姓名:')
add_age = input('年齡:')
add_tel = input('電話:')
# 產(chǎn)生學(xué)號(hào)
number += 1
add_id = 'py1805' + str(number).rjust(3, '0')
# 創(chuàng)建學(xué)生(一個(gè)學(xué)生就是一個(gè)字典)
add_student = {key_name: add_name, key_age: add_age, key_tel: add_tel, key_id: add_id}
# 獲取存學(xué)生的容器
all_students = system_info.get(key_all_student)
if all_students == None:
all_students = []
# 將學(xué)生添加到容器中
all_students.append(add_student)
system_info[key_all_student] = all_students
print('添加學(xué)生 %s 成功' % add_name)
# print(system_info)
# 給出選擇
print('1.繼續(xù)添加\n其他:返回上一層')
add_input = input('>>>')
if add_input != '1':
break
continue
# ============查看學(xué)生==============
if input_value == '2':
"""給出選擇"""
print('=查看學(xué)生=')
print('1.查看所有的學(xué)生信息')
print('2.根據(jù)姓名查看學(xué)生信息')
print('3.根據(jù)學(xué)號(hào)查看學(xué)生信息')
print('4.返回上一層')
find_input = input('請(qǐng)輸入(1,2,3,4):')
# 直接回到上一層
if find_input == '4':
continue
# 先看有沒(méi)有學(xué)生
"""拿到所有的學(xué)生"""
all_students = system_info.get(key_all_student)
"""系統(tǒng)還沒(méi)有添加過(guò)學(xué)生"""
"""
or和and的短路操作:
表達(dá)式1 or 表達(dá)式2:如果表達(dá)式1的值是True,那么不會(huì)執(zhí)行表達(dá)式2甲葬,結(jié)果直接為True
表達(dá)式1 and 表達(dá)式2:如果表達(dá)式1的值是False,那么不會(huì)執(zhí)行表達(dá)式2廊勃,結(jié)果直接是False
None []
"""
if (not all_students) or (not len(all_students)):
print('系統(tǒng)中還沒(méi)有學(xué)生!!')
continue
# ==查看所有==
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ù)姓名找
elif find_input == '2':
find_name = input('請(qǐng)輸入要查看的學(xué)生的名字:')
flag = True # 表示是否找不到
for student in all_students:
# 如果學(xué)生的名字和輸入的名字相同,就打印這個(gè)學(xué)生的信息
if find_name == student[key_name]:
print(student)
flag = False
if flag:
print('找不到該學(xué)生信息!')
# ==根據(jù)學(xué)號(hào)找
elif find_input == '3':
find_id = input('請(qǐng)輸入要查看的學(xué)生的學(xué)號(hào):')
flag = True
for student in all_students:
if find_id == student[key_id]:
print(student)
flag = False
break
if flag:
print('找不到該學(xué)生信息!')
continue
# ============刪除學(xué)生==============
if input_value == '3':
while True:
print('1.按姓名刪除')
print('2.按學(xué)號(hào)刪除')
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)沒(méi)有學(xué)生!')
break
if del_input == '1':
del_name = input('輸入要?jiǎng)h除的學(xué)生的姓名:')
del_students = []
# 找到所有可能要?jiǎng)h除的學(xué)生
for student in all_students:
if del_name == student[key_name]:
# 保存可能要?jiǎng)h除的學(xué)生
del_students.append(student)
# 判斷是否找到
if not len(del_students):
print('沒(méi)有找到相關(guān)的學(xué)生信息!')
continue
# 打印所有可能需要?jiǎng)h除的學(xué)生
index = 0
for student in del_students:
print(index, student)
index += 1
del_num = input('請(qǐng)選擇要?jiǎng)h除的學(xué)生的編號(hào):')
del_student = del_students[int(del_num)]
# 從系統(tǒng)中刪除這個(gè)學(xué)生
system_info[key_all_student].remove(del_student)
print('刪除成功!')
continue
# ============修改信息==============
if input_value == '4':
print('修改信息')
continue
學(xué)生管理系統(tǒng)01
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門搬泥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)桑寨,“玉大人,你說(shuō)我怎么就攤上這事忿檩∥疚玻” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵燥透,是天一觀的道長(zhǎng)沙咏。 經(jīng)常有香客問(wèn)我,道長(zhǎng)班套,這世上最難降的妖魔是什么肢藐? 我笑而不...
- 正文 為了忘掉前任,我火速辦了婚禮吱韭,結(jié)果婚禮上吆豹,老公的妹妹穿的比我還像新娘。我一直安慰自己理盆,他們只是感情好瞻讽,可當(dāng)我...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著熏挎,像睡著了一般速勇。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上坎拐,一...
- 那天烦磁,我揣著相機(jī)與錄音养匈,去河邊找鬼。 笑死都伪,一個(gè)胖子當(dāng)著我的面吹牛呕乎,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播陨晶,決...
- 文/蒼蘭香墨 我猛地睜開眼猬仁,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了先誉?” 一聲冷哼從身側(cè)響起湿刽,我...
- 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎褐耳,沒(méi)想到半個(gè)月后诈闺,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡铃芦,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年雅镊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片刃滓。...
- 正文 年R本政府宣布老客,位于F島的核電站僚饭,受9級(jí)特大地震影響震叮,放射性物質(zhì)發(fā)生泄漏胧砰。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一苇瓣、第九天 我趴在偏房一處隱蔽的房頂上張望尉间。 院中可真熱鬧,春花似錦击罪、人聲如沸哲嘲。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)眠副。三九已至,卻和暖如春竣稽,著一層夾襖步出監(jiān)牢的瞬間囱怕,已是汗流浹背霍弹。 一陣腳步聲響...
- 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像台丛,于是被迫代替她去往敵國(guó)和親耍缴。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...