管理人員檔案,管理學生資訊,實作錄入和查找功能,方便人員管理
下面就教大家如何利用python撰寫這一系統???
------------------------------------------------------------------------------------------
開始我們用pycharm這款軟體;
我們先打開 pycharm,新建一個python檔案命名為通訊錄管理系統.py
鑒于第一次撰寫我從后面加上了版本號alphaV1.0

我們想實作的功能是,人員的錄入,查看和洗掉
那我們先實作人員的錄入;
1.錄入
對于錄入,在python里來講,也就是相當于輸入并保存在一個變數中
對于輸入,我們可以用python中的input()函式來實作
下面我們就先定義三個變數用來保存輸入的內容
code=input("請輸入要錄入的學生的學號:")
name=input("請輸入要錄入的學生的姓名:")
tel =input("請輸入要錄入的學生的電話:")
這三個變數分別保存的是要錄入人員的編號,姓名和電話
我們完成三個變數的定義后我們發現,這三個變數是分散的且獨立的;
一個人的資訊應該是連成串的而不是散亂的,所以;
我們用python串列中“字典”功能將這三個變數或者說資訊編成一條,
那么這一條就是一個人的所有資訊
下面我們就去實作將三個分散的資訊編成一條的個人資訊
code=input("請輸入要錄入的學生的學號:")#單條資訊
name=input("請輸入要錄入的學生的姓名:")#單條資訊
tel =input("請輸入要錄入的學生的電話:")#單條資訊
sdt={"學號":code,"姓名":name,"電話":tel}#串,一串一個人
這樣就將三條分散的個人資訊匯聚成了一條個人的資訊
系統中不可能只能錄入一個人,而上面只實作了一個人的資訊錄入并編成一串
那么我們就得不停的錄入并把新錄入的資訊不停的變成串
這樣我們就有了許多“串”,一串就是一個人的全部資訊
有了許多資訊串就相當于系統中錄入了許多人
當串多了也就是人多了之后也需管理
所以我們將串放到串列里面就可以便于管理
畢竟后面還要實作人員的洗掉和查找
而串列就可以進行洗掉和查找
下面我們實作將串放入串列中
code=input("請輸入要錄入的學生的學號:") #單條資訊
name=input("請輸入要錄入的學生的姓名:") #單條資訊
tel =input("請輸入要錄入的學生的電話:") #單條資訊
sdt={"學號":code,"姓名":name,"電話":tel} #串,一串一個人
students=[] #添加一個串列,名字是student
students.append(sdt) #將串放入串列中
這樣我們的眾多串就被編成了串列,我們就可以利用串列來進行后面的查找和洗掉
我們不妨來運行一下試試
我們可以看到一個名為Jack_Qu的學生的所有資訊都被錄入了
可是我們輸入完后資訊以二進制的01010101110被保存在記憶體中,我們看不見,且程式就結束了
那么我們再從后面添加個python的列印函式,使剛才輸入的學生的資訊串顯示出來
code=input("請輸入要錄入的學生的學號:") #單條資訊
name=input("請輸入要錄入的學生的姓名:") #單條資訊
tel =input("請輸入要錄入的學生的電話:") #單條資訊
sdt={"學號":code,"姓名":name,"電話":tel} #串,一串一個人
students=[] #添加一個串列,名字是student
students.append(sdt) #將串放入串列中
print(sdt) #將剛剛輸入并被編成串的資訊列印(顯示)在螢屏上
我們在派醬里實作一下

雀食,我們剛剛錄入的人員資訊顯示了出來,然后程式結束
這樣,我們的錄入系統就完成了90%
剩下的10%呢?
我們觀察上面程式的執行情況,我們只錄入了一個學生的資訊,錄入完成后,程式自動結束了
也就是說這個程式現在就只能錄入一個人,關閉程式錄入的資訊就被洗掉
那我想在錄入后還能不斷錄入呢?如何實作?
其實,我們只要在整個程式前添加一個回圈就行,當計算機運行完所有行代碼不結束重新在前面
添加的回圈處繼續運行,只要我們不人為從外部關閉程式或從內部關閉程式
這個程式就一直運行下去
不會出現錄入完一個人就結束的情況
下面我們為我們的這個程式添加一個無限的回圈
students=[] #添加一個串列,名字是student
while True:
code=input("請輸入要錄入的學生的學號:") #單條資訊
name=input("請輸入要錄入的學生的姓名:") #單條資訊
tel =input("請輸入要錄入的學生的電話:") #單條資訊
sdt={"學號":code,"姓名":name,"電話":tel} #串,一串一個人
students.append(sdt) #將串放入串列中
print(sdt) #將剛剛輸入并被編成串的資訊列印(顯示)在螢屏上
我們添加一個while True回圈,只要程式不報錯就會一直在回圈處一遍一遍的跑代碼
我們還注意到一件事,我將添加串列從下面的回圈移了出去,如果我們不移出去,那么
程式就會在每一次回圈中創建一個叫students的串列兩個串列同名肯定會報錯,程式也就終止不能運行下去了
下面我們再次請出我們kirakira☆~派醬!運行一下代碼

ohhhhhhhh!我們可以發現我們錄完Jack_Qu這個同學后系統沒有結束,而是從錄入又開始運行
這樣我們就可以錄入好多好多人了😇
至此我們的錄入系統就算初步完成了🎉
2.查找
我們撰寫完了錄入
接下來就是查找功能的撰寫
不過在這里我們發現了一個問題
上面的錄入一直在運行
我們如果想要查找怎么辦?
兩個功能會沖突也說不一定
這是兩個不同的功能
所以,我們想了個方法
將上面的錄入和我們即將要寫的查找功能分開
當我們想運行查找功能時計算機就運行查找功能
當我們想運行錄入功能時就運行錄入功能
說干就干,將兩個功能分開我們可以用類似應用app的思路
當我們輸入編號對應的功能時
程式就能進入相應的功能來完成操作
這樣我們將錄入編為功能1
將查找編為功能2
將洗掉編為功能3
并且我們再寫一個簡陋的系統界面
輸入數字就能執行相應的功能我們用if()函式來實作
下面我們來試撰寫一下
print("----------------------------")#人性化界面
print("歡迎使用通訊錄管理系用V1.0")
print("[1]增加學員資訊")
print("[2]洗掉學員資訊")
print("[3]顯示學員資訊")
print("[4]退出系統")
print("----------------------------")
students=[] #添加一個串列,名字是student
while True:
n=int(input("請輸入你想執行的功能:"))#功能選擇
if n==1 : #錄入功能
code=input("請輸入要錄入的學生的學號:") #單條資訊
name=input("請輸入要錄入的學生的姓名:") #單條資訊
tel =input("請輸入要錄入的學生的電話:") #單條資訊
sdt={"學號":code,"姓名":name,"電話":tel} #串,一串一個人
students.append(sdt) #將串放入串列中
print(sdt) #將剛剛輸入并被編成串的資訊列印(顯示)在螢屏上
if n==2 #查找功能
我們再用派醬運行一下

我們可以看到系統要你輸入你想實作的功能了
錄入和查找分開后我們就能開始撰寫查找了
查找功能的實作我們可以利用for in的回圈遍歷
來查找我們想找的資訊
首先我們寫一個輸入輸入我們想查找人員的資訊,這里我們最好用學號來查找人員,因為我們
不敢保證系統里沒有重名者
然后用for in 遍歷
elif n == 2 : # 打開查找功能
h = int(input("請輸入你想現實的學員的學號:")) # 溫馨提示語
for t in students: # 在大串列students中遍歷所有t字典
if t["學號"] == h: # 如果遍歷的所有字典串中有學號等于輸入的數字
print("學號:%s \t姓名:%s \t電話:%s" % (t["學號"], t["姓名"],t["電話"]))
'''最后格式化輸出'''
然后我們用格式化輸出
這樣,我們就完成了查找功能
下面我們再次打開派醬運行下,這次我們和上面錄入一起運行,有前后順序
1.運行

2.錄入
3.查找
ok,三個功能我們已經實作了兩個
最后一個內容是洗掉
3.洗掉
同樣,我們先定義洗掉選項是3
然后我們可以學習查找程序,先查找,后洗掉
我們可以這樣寫
elif n == 3 : # 打開洗掉功能
n = int(input("請輸入你想現實的學員的學號:")) # 溫馨提示語
for i in students: # 在大串列students中遍歷所有t字典
if i["學號"] == n: # 如果遍歷的所有字典串中有學號等于輸入的數字
students.remove(i)
print("洗掉成功")
這樣我們就可以成功洗掉
最后
我們再實作一個功能,那就是退出程式
我們把退出功能系結為4
要實作我們只要用一個breakjiuxingl
if n==4:
print("感謝您使用學生資訊查詢系統")
break#退出
ok,到這里我們的通訊錄管理系統也做得差不多了,當然也可以細化一下,或者添加一些新東西
希望我的學習經驗和思路能幫助更多的人,
謝謝,10.30.17:04
完整代碼:
print("----------------------------")#人性化界面
print("歡迎使用通訊錄管理系用V1.0")
print("[1]增加學員資訊")
print("[2]洗掉學員資訊")
print("[3]顯示學員資訊")
print("[4]退出系統")
print("----------------------------")
students=[] #添加一個串列,名字是student
while True:
n=int(input("請輸入你想執行的功能:"))#功能選擇
if n==1: #打開錄入功能
code=int(input("請輸入要錄入的學生的學號:")) #單條資訊
name=input("請輸入要錄入的學生的姓名:") #單條資訊
tel =input("請輸入要錄入的學生的電話:") #單條資訊
sdt={"學號":code,"姓名":name,"電話":tel} #串,一串一個人
students.append(sdt) #將串放入串列中
print(sdt) #將剛剛輸入并被編成串的資訊列印(顯示)在螢屏上
if n == 2 : # 打開查找功能
h = int(input("請輸入你想現實的學員的學號:")) # 溫馨提示語
for t in students: # 在大串列students中遍歷所有t字典
if t["學號"] == h: # 如果遍歷的所有字典串中有學號等于輸入的數字
print("學號:%s \t姓名:%s \t電話:%s" % (t["學號"], t["姓名"],t["電話"]))
# 列印展示該串列中的字典
if n == 3: # 打開洗掉功能
n = int(input("請輸入你想現實的學員的學號:")) # 溫馨提示語
for i in students: # 在大串列students中遍歷所有t字典
if i["學號"] == n: # 如果遍歷的所有字典串中有學號等于輸入的數字
students.remove(i)
print("洗掉成功")
if n== 4:
print("退出成功,感謝您使用通訊錄系統")
break
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/342221.html
標籤:python
上一篇:Python執行pyinstaller打包生成的exe檔案實戰
下一篇:【演算法學習】1470. 重新排列陣列(java / c / c++ / python / go / rust)
