Python實現(xiàn)命令行通訊錄實例教程
1、實現(xiàn)目標
編寫一個命令行通訊錄程序,可以添加、查詢、刪除通訊錄好友及電話
2、實現(xiàn)方法
創(chuàng)建一個類來表示一個人的信息。使用字典存儲每個人的對象,名字作為鍵。
使用pickle模塊永久地把這些對象存儲下來。
使用字典內(nèi)建的方法添加、刪除修改人員信息。
3、思維導圖
4、編寫偽代碼
# 1.創(chuàng)建字典用來存儲通訊錄信息 # 2.創(chuàng)建人員類,包含姓名、關(guān)系、電話三個屬性 # 3.創(chuàng)建操作類,包含增加、查詢、刪除人員,退出,保存并退出五個方法 # 4.程序運行 # 5.判斷通訊錄文件是否存在 # 6.如果存在,將文件讀取到personDictionary字典中 # 7.如果不存在,提示并創(chuàng)建 # 8.while循環(huán)等待讀取指令 # 9.如果指令為addperson,添加通訊錄人員 # 10.如果指令為delperson,刪除通訊錄人員 # 11.如果指令為search,查找通訊錄人員 # 12.如果指令為quit,不保存退出程序 # 13.如果指令為sq,保存更改并退出程序
5、根據(jù)偽代碼編寫代碼
import pickle as p import os # 1.創(chuàng)建字典用來存儲通訊錄信息 personDictionary= {'name':{'relationship':'','tel':''}} relationshipList=['家人','朋友','同事'] # 2.創(chuàng)建人員類,包含姓名、關(guān)系、電話三個屬性 class Person: def __init__(self,name,relationship= relationshipList[1],tel='None'): personDictionary[name]= {'relationship':relationship,'tel':tel} # 3.創(chuàng)建操作類,包含增加、查詢、刪除人員,退出,保存并退出五個方法 class Operation: def Addperson(): addname= input('請輸入姓名:') addrelationship= int(input('請選擇分組(0:家人,1:朋友,2:同事):')) addtel= input('請輸入電話:') Person(addname,relationshipList[addrelationship],addtel) def Delperson(): name= input('請輸入要刪除的聯(lián)系人姓名:') del personDictionary[name] def Search(): name= input('請輸入要查找的聯(lián)系人的姓名:') if name in personDictionary: print('姓名:%s,關(guān)系:%s,電話:%s' %(name,personDictionary[name]['relationship'],personDictionary[name]['tel'])) else: print('聯(lián)系人不存在。') def Quit(): running= False def SaveQuit(): f= open(addressbookFile,'wb') p.dump(personDictionary,f) f.close() running= False # 4.程序運行 running= True # 5.判斷通訊錄文件是否存在 addressbookFile= 'addressbook.data' # 6.如果存在,將文件讀取到personDictionary字典中 if os.path.exists(addressbookFile): f= open(addressbookFile,'rb') personDictionary= p.load(f) # 7.如果不存在,提示并創(chuàng)建 else: jCommand= input('未找到通訊錄文件,是否創(chuàng)建?yes/no ') if jCommand== 'yes': f= open(addressbookFile,'wb') p.dump(personDictionary,f) f.close() elif jCommand== 'no': running= False # 8.while循環(huán)等待讀取指令 while running: command= input('請輸入指令:') # 9.如果指令為addperson,添加通訊錄人員 if command== 'addperson': Operation.Addperson() continue # 10.如果指令為delperson,刪除通訊錄人員 elif command== 'delperson': Operation.Delperson() continue # 11.如果指令為search,查找通訊錄人員 elif command== 'search': Operation.Search() continue # 12.如果指令為quit,不保存退出程序 elif command== 'quit': Operation.Quit() break # 13.如果指令為sq,保存更改并退出程序 elif command== 'sq': Operation.SaveQuit() break else: print('未找到指令!') continue
6、演示
Python3 addressbook.py 請輸入指令:search 請輸入要查找的聯(lián)系人的姓名:zhangsan 聯(lián)系人不存在。 請輸入指令:addperson 請輸入姓名:zhangsan 請選擇分組(0:家人,1:朋友,2:同事):1 請輸入電話:1234567 請輸入指令:search 請輸入要查找的聯(lián)系人的姓名:zhangsan 姓名:zhangsan,關(guān)系:朋友,電話:1234567 請輸入指令:sq $ Python3 addressbook.py 請輸入指令:search 請輸入要查找的聯(lián)系人的姓名:zhangsan 姓名:zhangsan,關(guān)系:朋友,電話:1234567 請輸入指令:addperson 請輸入姓名:lisi 請選擇分組(0:家人,1:朋友,2:同事):1 請輸入電話:1234567 請輸入指令:q 未找到指令! 請輸入指令:quit $ Python3 addressbook.py 請輸入指令:search 請輸入要查找的聯(lián)系人的姓名:lisi 聯(lián)系人不存在。 請輸入指令:search 請輸入要查找的聯(lián)系人的姓名:zhangsan 姓名:zhangsan,關(guān)系:朋友,電話:1234567 請輸入指令:quit
總結(jié)
以上就是Python實現(xiàn)命令行通訊錄實例教程的全部內(nèi)容,如果有疑問可以留言討論,希望本文的內(nèi)容對大家學習使用python能有所幫助。
相關(guān)文章
Python實現(xiàn)PDF文字識別提取并寫入CSV文件
這篇文章主要是和大家分享一個Python實現(xiàn)PDF文字識別與提取并寫入?CSV文件的腳本。文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下2022-03-03Python3 微信支付(小程序支付)V3接口的實現(xiàn)
本文主要介紹了Python3 微信支付(小程序支付)V3接口的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-01-01Python DataFrame設置/更改列表字段/元素類型的方法
今天小編就為大家分享一篇Python DataFrame設置/更改列表字段/元素類型的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06Django高級編程之自定義Field實現(xiàn)多語言
這篇文章主要介紹了Django高級編程之自定義Field實現(xiàn)多語言,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-07-07