
今天,我又來(lái)了,我今天敲一下關(guān)于這個(gè)學(xué)生管理系統(tǒng)的代碼。
具體分為以下幾個(gè)部分:
1、新建一個(gè)列表,用來(lái)存放所有的學(xué)生信息
2、定義一個(gè)打印一個(gè)功能菜單目錄(告訴和簡(jiǎn)化指令)
3、定義一個(gè)添加信息的函數(shù)
4、定義一個(gè)刪除信息的函數(shù)
5、定義一個(gè)修改信息的函數(shù)
6、定義一個(gè)打印學(xué)生信息的函數(shù)
7、定義一個(gè)總函數(shù)用來(lái)調(diào)用上面定義的函數(shù)
廢話不多說(shuō),我們開(kāi)始第一個(gè)板塊
一、新建一個(gè)列表
stuInfos = []
二、打印目錄函數(shù)
def printMenu():
print("=" * 30)
print(" 學(xué)生管理系統(tǒng) V1.0 ")
print("1. 添加學(xué)生信息 ")
print("2. 刪除學(xué)生信息 ")
print("3. 修改學(xué)生信息 ")
print("4. 顯示所有學(xué)生信息 ")
print("0. 退出系統(tǒng) ")
print("=" * 30)
到這基本上都是很簡(jiǎn)單的
三、添加函數(shù)
def addStuInfo():
newName = input(" 請(qǐng)輸入新學(xué)生的名字: ")
# 提示并獲取學(xué)生的性別
newSex = input(" 請(qǐng)輸入新學(xué)生的性別: ( 男 / 女 )")
# 提示并獲取學(xué)生的手機(jī)號(hào)碼
newPhone = input(" 請(qǐng)輸入新學(xué)生的手機(jī)號(hào)碼: ")
newInfo = {}
newInfo['name'] = newName
newInfo['sex'] = newSex
newInfo['phone'] = newPhone
stuInfos.append(newInfo)
這里是把輸入的信息放到newInfo{}字典里面,然后通過(guò)append函數(shù),將信息加入到了總信息庫(kù)stuInfos列表里面,形成列表字典嵌套
我在這做了個(gè)小例子,代碼如下:(這個(gè)不是管理系統(tǒng)里面的代碼!是我舉的關(guān)于列表字典嵌套的例子)
StudentInfos = []
A = {'name' :'xxx','sex':'nan'}
StudentInfos.append(A)
print(StudentInfos)
B = {'name':'yyy','sex':'nv'}
StudentInfos.append(B)
print(StudentInfos)

看,結(jié)果就和上面一樣,這就是所謂的列表字典嵌套。好處就是一個(gè)字典是一個(gè)學(xué)生的所有信息!
四、刪除函數(shù)
def delStuInfo(student):
delNum = int(input(" 請(qǐng)輸入要?jiǎng)h除的序號(hào): "))-1
del student[delNum]
這里也挺好理解的當(dāng)你想修改第一個(gè)字典時(shí),序號(hào)應(yīng)當(dāng)是0,而不是1。
五、修改函數(shù)
def modifyStuInfo():
stuId=int(input(" 請(qǐng)輸入要修改的學(xué)生的序號(hào): "))
newName = input(" 請(qǐng)輸入新學(xué)生的名字: ")
newSex = input(" 請(qǐng)輸入新學(xué)生的性別: ( 男 / 女 )")
newPhone = input(" 請(qǐng)輸入新學(xué)生的手機(jī)號(hào)碼: ")
stuInfos[stuId - 1]['name'] = newName
stuInfos[stuId - 1]['sex'] = newSex
stuInfos[stuId - 1]['phone'] = newPhone
這里是利用重新賦值達(dá)到一個(gè)對(duì)于信息的修改
舉例說(shuō)明:
StudentInfos = []
A = {'name' :'xxx','sex':'nan'}
StudentInfos.append(A)
B = {'name':'yyy','sex':'nv'}
StudentInfos.append(B)
print(StudentInfos)
newname = 'zzz'
StudentInfos[0]['name']=newname
print(StudentInfos)

前后對(duì)比
六、展示函數(shù)
def showStuInfo():
print("=" * 30)
print(" 學(xué)生的信息如下 :")
print("=" * 30)
print(" 序號(hào) 姓名 性別 手機(jī)號(hào)碼 ")
i = 1
for tempInfo in stuInfos:
print("%d %s %s %s" % (i, tempInfo['name'],
tempInfo['sex'], tempInfo['phone']))
i += 1
上面的print沒(méi)的說(shuō),主要是下面的用到了一個(gè)for循環(huán)和%的格式化輸出
七、調(diào)用函數(shù)
def main():
while True:
printMenu() # 打印菜單
key=input(" 請(qǐng)輸入功能對(duì)應(yīng)的數(shù)字 :") # 獲得用戶輸入的序號(hào)
if key=='1': # 添加學(xué)生的信息
addStuInfo()
elif key =='2': # 刪除學(xué)生的信息
delStuInfo(stuInfos)
elif key=='3': # 修改學(xué)生的信息
modifyStuInfo()
elif key=='4': # 查看所有學(xué)生的信息
showStuInfo()
elif key=='0': # 退出系統(tǒng)
quitConfirm = input(" 親,真的要退出么? (Yes or No):")
if quitConfirm == "Yes":
break
else:
print(" 輸入有誤,請(qǐng)重新輸入 ")
這里有對(duì)應(yīng)的key數(shù)字對(duì)應(yīng)不同的if通道調(diào)所定義的函數(shù),進(jìn)行分支處理,我們的while循環(huán)是為了保證在輸入了一次key調(diào)用了函數(shù)之后,繼續(xù)回到打印菜單然后繼續(xù)可以輸入key操作,當(dāng)輸入'0'時(shí)輸入'yes',則break循環(huán),結(jié)束。
當(dāng)然!最重要的是我們要調(diào)用main()函數(shù),利用main()函數(shù)已經(jīng)設(shè)計(jì)好了的來(lái)調(diào)用其他函數(shù)!
main()
好的最后一步我們也完成啦!

點(diǎn)個(gè)贊再走吧!