教你用Python實(shí)現(xiàn)簡(jiǎn)易版學(xué)生信息管理系統(tǒng)(含源碼)
一、項(xiàng)目分析
1、首先定義一個(gè)存放基礎(chǔ)學(xué)生信息列表
格式:list = [{學(xué)號(hào):姓名,年齡:num,成績(jī):num },{……}]
student1 = [\ {1:"jam",'age':17,'socer':99}, {2:'kol','age':18,'socer':89}, {3:'avlir','age':19,'socer':100}]
2、先搭建框架(主函數(shù)main())
if __name__ == '__main__': while True: menu() key = input("輸入選項(xiàng)數(shù)字 查詢/輸入 信息:") if key == '1': lookup() #打印指定學(xué)生信息 elif key == '2': append() #添加新的學(xué)生信息 elif key == '3': delete() #刪除指定學(xué)生信息 elif key == '4': allinformation() #打印所有信息 elif key == '5': revise() #修改指定學(xué)生信息 elif key == '6': save() #保存信息 elif key == '0': print("確定退出?") exit = input("輸入yes退出:") if exit == 'yes': break else: print("輸入錯(cuò)誤,返回 ")
3、搭建好框架之后,這時(shí)候發(fā)現(xiàn)需要一個(gè)菜單界面(menu())
#頁(yè)面 def menu(): print('-'*30) print("歡迎來(lái)到學(xué)生管理系統(tǒng)") print("1.輸入學(xué)號(hào)查詢成績(jī)") print("2.添加學(xué)生信息") print("3.刪除學(xué)生信息") print("4.打印所有學(xué)生信息") print("5.修改學(xué)生信息") print("6.保存學(xué)生信息到指定文件") print("0.退出系統(tǒng)") print("-"*30)
4、接下來(lái)就是查詢指定學(xué)生信息(lookup())。
列表下標(biāo)從0開(kāi)始,所以這里在輸入學(xué)號(hào)后面加了 “-1”
#打印信息 def lookup(): sid = int(input("輸入查詢學(xué)號(hào):"))-1 #學(xué)號(hào) if sid > len(student1)-1: print("輸入錯(cuò)誤,返回菜單") else: print(student1[sid]) #輸出信息 input("按回車鍵繼續(xù)")
5、接下來(lái)是添加學(xué)生信息(append())
因?yàn)榱斜碓厥怯米值浯鎯?chǔ),所以這里用到字典的添加元素
#添加信息 def append(): newsid = eval(input('輸入新同學(xué)學(xué)號(hào)(從4開(kāi)始):')) newname = eval(input('輸入新同學(xué)姓名:')) newage = eval(input('輸入新同學(xué)年齡:')) newsocer = eval(input('輸入新同學(xué)成績(jī):')) newstudent1 = {} newstudent1[newsid] = newname #添加 學(xué)號(hào)、姓名 newstudent1['age'] = newage #添加年齡 newstudent1['socer'] = newsocer #添加成績(jī) student1.append(newstudent1) #加入列表 input("按回車鍵繼續(xù)")
6、能添加也就能刪除(delete())
#刪除信息 def delete(): did = int(input("輸入需要?jiǎng)h除的成績(jī)對(duì)應(yīng)的學(xué)號(hào):"))-1 del student1[did] #刪除指定信息 input("按回車鍵繼續(xù)")
7、然后就是輸出所有信息(allinformation())
這里遍歷輸出列表元素時(shí),用到了格式化字符串的函數(shù) str.format()
##輸出所有學(xué)生信息 def allinformation(): print("所有信息如下:") i = 1 for show in student1: print("{}".format(show)) #打印學(xué)生信息 i += 1 input("按回車鍵繼續(xù)")
8、現(xiàn)在還差修改信息(revise())
也是字典修改值得方法,通過(guò)鍵來(lái)修改對(duì)應(yīng)值
##修改信息 def revise(): resid = int(input("輸入要修改的學(xué)生學(xué)號(hào):"))-1 r = input("要修改的對(duì)象(1.年齡;2.成績(jī);否則,都修改):") if r == '1': newage = input("修改后的年齡") student1[resid]['age'] = newage elif r == '2': newsocer = input("修改后的成績(jī)") student1[resid]['socer'] = newsocer else: newage = input("修改后的年齡") newsocer = input("修改后的成績(jī)") student1[resid]['socer'] = newsocer student1[resid]['age'] = newage input("按回車鍵繼續(xù)")
9、差點(diǎn)忘了還得保存一下信息……(save())
我把它保存在與代碼同一文件中student.txt文件中,引入路徑時(shí)需要絕對(duì)路徑
##保存學(xué)生信息 def save(): f = open('student.txt','w') #打開(kāi)文件 f.write(str(student1)) #寫入文件 f.close() #關(guān)閉文件 input("保存成功按回車鍵繼續(xù)")
然后,完整代碼如下:
''' Created on 2021年6月13日 學(xué)生信息系統(tǒng) 列表存儲(chǔ)學(xué)生信息,通過(guò)字典——鍵進(jìn)行學(xué)生信息訪問(wèn) @author: 小天 ''' student1 = [\ {1:"jam",'age':17,'socer':99}, {2:'kol','age':18,'socer':89}, {3:'avlir','age':19,'socer':100}] #頁(yè)面 def menu(): print('-'*30) print("歡迎來(lái)到學(xué)生管理系統(tǒng)") print("1.輸入學(xué)號(hào)查詢成績(jī)") print("2.添加學(xué)生信息") print("3.刪除學(xué)生信息") print("4.打印所有學(xué)生信息") print("5.修改學(xué)生信息") print("6.保存學(xué)生信息到指定文件") print("0.退出系統(tǒng)") print("-"*30) #打印信息 def lookup(): sid = int(input("輸入查詢學(xué)號(hào):"))-1 #學(xué)號(hào) if sid > len(student1)-1: print("輸入錯(cuò)誤,返回菜單") else: print(student1[sid]) #輸出信息 input("按回車鍵繼續(xù)") #添加信息 def append(): newsid = eval(input('輸入新同學(xué)學(xué)號(hào)(從4開(kāi)始):')) newname = eval(input('輸入新同學(xué)姓名:')) newage = eval(input('輸入新同學(xué)年齡:')) newsocer = eval(input('輸入新同學(xué)成績(jī):')) newstudent1 = {} newstudent1[newsid] = newname #添加 學(xué)號(hào)、姓名 newstudent1['age'] = newage #添加年齡 newstudent1['socer'] = newsocer #添加成績(jī) student1.append(newstudent1) #加入列表 input("按回車鍵繼續(xù)") #刪除信息 def delete(): did = int(input("輸入需要?jiǎng)h除的成績(jī)對(duì)應(yīng)的學(xué)號(hào):"))-1 del student1[did] #刪除指定信息 input("按回車鍵繼續(xù)") ##輸出所有學(xué)生信息 def allinformation(): print("所有信息如下:") i = 1 for show in student1: print("{}".format(show)) #打印學(xué)生信息 i += 1 input("按回車鍵繼續(xù)") ##修改信息 def revise(): resid = int(input("輸入要修改的學(xué)生學(xué)號(hào):"))-1 r = input("要修改的對(duì)象(1.年齡;2.成績(jī);否則,都修改):") if r == '1': newage = input("修改后的年齡") student1[resid]['age'] = newage elif r == '2': newsocer = input("修改后的成績(jī)") student1[resid]['socer'] = newsocer else: newage = input("修改后的年齡") newsocer = input("修改后的成績(jī)") student1[resid]['socer'] = newsocer student1[resid]['age'] = newage input("按回車鍵繼續(xù)") ##保存學(xué)生信息 def save(): f = open('student.txt','w') #打開(kāi)文件 f.write(str(student1)) #寫入文件 f.close() #關(guān)閉文件 input("保存成功按回車鍵繼續(xù)") if __name__ == '__main__': while True: menu() key = input("輸入選項(xiàng)數(shù)字 查詢/輸入 信息:") if key == '1': lookup() #打印指定學(xué)生信息 elif key == '2': append() #添加新的學(xué)生信息 elif key == '3': delete() #刪除指定學(xué)生信息 elif key == '4': allinformation() #打印所有信息 elif key == '5': revise() #修改指定學(xué)生信息 elif key == '6': save() #保存信息 elif key == '0': print("確定退出?") exit = input("輸入yes退出:") if exit == 'yes': break else: print("輸入錯(cuò)誤,返回 ")
輸出示例:
------------------------------
歡迎來(lái)到學(xué)生管理系統(tǒng)
1.輸入學(xué)號(hào)查詢成績(jī)
2.添加學(xué)生信息
3.刪除學(xué)生信息
4.打印所有學(xué)生信息
5.修改學(xué)生信息
6.保存學(xué)生信息到指定文件
0.退出系統(tǒng)
------------------------------
輸入選項(xiàng)數(shù)字 查詢/輸入 信息:2
輸入新同學(xué)學(xué)號(hào)(從4開(kāi)始):4
輸入新同學(xué)姓名:'dfg'
輸入新同學(xué)年齡:17
輸入新同學(xué)成績(jī):78
按回車鍵繼續(xù)
------------------------------
歡迎來(lái)到學(xué)生管理系統(tǒng)
1.輸入學(xué)號(hào)查詢成績(jī)
2.添加學(xué)生信息
3.刪除學(xué)生信息
4.打印所有學(xué)生信息
5.修改學(xué)生信息
6.保存學(xué)生信息到指定文件
0.退出系統(tǒng)
------------------------------
輸入選項(xiàng)數(shù)字 查詢/輸入 信息:6
按回車鍵繼續(xù)
------------------------------
歡迎來(lái)到學(xué)生管理系統(tǒng)
1.輸入學(xué)號(hào)查詢成績(jī)
2.添加學(xué)生信息
3.刪除學(xué)生信息
4.打印所有學(xué)生信息
5.修改學(xué)生信息
6.保存學(xué)生信息到指定文件
0.退出系統(tǒng)
------------------------------
輸入選項(xiàng)數(shù)字 查詢/輸入 信息:4
所有信息如下:
{1: 'jam', 'age': 17, 'socer': 99}
{2: 'kol', 'age': 18, 'socer': 89}
{3: 'avlir', 'age': 19, 'socer': 100}
{4: 'dfg', 'age': 17, 'socer': 78}
按回車鍵繼續(xù)
------------------------------
歡迎來(lái)到學(xué)生管理系統(tǒng)
1.輸入學(xué)號(hào)查詢成績(jī)
2.添加學(xué)生信息
3.刪除學(xué)生信息
4.打印所有學(xué)生信息
5.修改學(xué)生信息
6.保存學(xué)生信息到指定文件
0.退出系統(tǒng)
------------------------------
輸入選項(xiàng)數(shù)字 查詢/輸入 信息:3
輸入需要?jiǎng)h除的成績(jī)對(duì)應(yīng)的學(xué)號(hào):4
按回車鍵繼續(xù)
------------------------------
歡迎來(lái)到學(xué)生管理系統(tǒng)
1.輸入學(xué)號(hào)查詢成績(jī)
2.添加學(xué)生信息
3.刪除學(xué)生信息
4.打印所有學(xué)生信息
5.修改學(xué)生信息
6.保存學(xué)生信息到指定文件
0.退出系統(tǒng)
------------------------------
輸入選項(xiàng)數(shù)字 查詢/輸入 信息:6
按回車鍵繼續(xù)
------------------------------
歡迎來(lái)到學(xué)生管理系統(tǒng)
1.輸入學(xué)號(hào)查詢成績(jī)
2.添加學(xué)生信息
3.刪除學(xué)生信息
4.打印所有學(xué)生信息
5.修改學(xué)生信息
6.保存學(xué)生信息到指定文件
0.退出系統(tǒng)
------------------------------
輸入選項(xiàng)數(shù)字 查詢/輸入 信息:0
確定退出?
輸入yes退出:yes
到此這篇關(guān)于教你用Python實(shí)現(xiàn)簡(jiǎn)易版學(xué)生信息管理系統(tǒng)(含源碼)的文章就介紹到這了,更多相關(guān)Python學(xué)生信息管理系統(tǒng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 使用python實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)
- python學(xué)生信息管理系統(tǒng)實(shí)現(xiàn)代碼
- Python實(shí)現(xiàn)簡(jiǎn)單的學(xué)生信息管理系統(tǒng)
- python代碼實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)
- python實(shí)現(xiàn)簡(jiǎn)易的學(xué)生信息管理系統(tǒng)
- 基于Python實(shí)現(xiàn)簡(jiǎn)易學(xué)生信息管理系統(tǒng)
- Python實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)的示例代碼
相關(guān)文章
Python pandas讀取CSV文件的注意事項(xiàng)(適合新手)
這篇文章主要給大家介紹了關(guān)于Python pandas讀取CSV文件的注意事項(xiàng),非常適合新手,csv是我接觸的比較早的一種文件,比較好的是這種文件既能夠以電子表格的形式查看又能夠以文本的形式查看,需要的朋友可以參考下2021-06-06Python多線程編程(七):使用Condition實(shí)現(xiàn)復(fù)雜同步
這篇文章主要介紹了Python多線程編程(七):使用Condition實(shí)現(xiàn)復(fù)雜同步,本文講解通過(guò)很著名的“生產(chǎn)者-消費(fèi)者”模型來(lái)來(lái)演示在Python中使用Condition實(shí)現(xiàn)復(fù)雜同步,需要的朋友可以參考下2015-04-04用xpath獲取指定標(biāo)簽下的所有text的實(shí)例
今天小編就為大家分享一篇用xpath獲取指定標(biāo)簽下的所有text的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01使用python 寫一個(gè)靜態(tài)服務(wù)(實(shí)戰(zhàn))
今天小編就為大家分享一篇使用python 寫一個(gè)靜態(tài)服務(wù)(實(shí)戰(zhàn)),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06使用python設(shè)置Excel工作表網(wǎng)格線的隱藏與顯示
Excel表格界面的直觀性很大程度上得益于表格中的網(wǎng)格線設(shè)計(jì),這些線條幫助用戶精確對(duì)齊數(shù)據(jù),清晰劃分單元格,本文將介紹如何使用Python設(shè)置隱藏或顯示Excel工作表的網(wǎng)格線,實(shí)現(xiàn)自動(dòng)話及批量處理,感興趣的朋友可以參考下2024-06-06YOLOv5部署到web端詳細(xì)過(guò)程(flask+js簡(jiǎn)單易懂)
YOLOv5是一個(gè)目標(biāo)檢測(cè)模型,Flask是一個(gè)Python的Web框架,下面這篇文章主要給大家介紹了關(guān)于YOLOv5部署到web端(flask+js簡(jiǎn)單易懂)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04