建立通訊錄的程式(用字典)

2021-07-25 18:03:38 字數 1944 閱讀 6415

print ("""

|---歡迎進入通訊錄程式---|

|---1:查詢聯絡人資料---|

|---2:插入新的聯絡人---|

|---3:刪除已有聯絡人---|

|---4:退出通訊錄程式---|

""")

dict = {}

while

true:

if number==2:

if name not

in dict.keys():

print ("\r")

dict[name] = tel

else:

print ("您輸入的姓名在通訊錄中已存在---> %s:%s" %(name,dict[name]))

flag=input("是否修改使用者資料(yes/no):")

if flag=="yes":

print("\r")

dict[name]=tel

if number==1:

print ("%s:%s" %(name,dict[name]))

print("\r")

if number==3:

if name in dict.keys():

del(dict[name])

else:

print("您輸入的聯絡人不存在。")

if number==4:

break

print("|---感謝使用通訊錄程式---|")

**我們發現使用條件語句的**非常直觀明了,但是效率不高。因為程式會兩次訪問字典的key,一次判斷是否存在(if name in dict.keys()),一次獲取值(print (「%s:%s」 %(name,dict[name])))。

如果利用異常解決方案,我們可以簡單避開每次需要使用in判斷key存在字典的操作。因為只要key不存在字典中時,會出發keyerror異常,利用此特徵我們可以修改**。**

# -*- coding: utf-8 -*-

print ("""

|---歡迎進入通訊錄程式---|

|---1:查詢聯絡人資料---|

|---2:插入新的聯絡人---|

|---3:刪除已有聯絡人---|

|---4:退出通訊錄程式---|

""")

dict = {}

while

true:

try:

if number==1:

try:

print ("%s:%s" %(name,dict[name]))

print("\r")

except keyerror:

print("您輸入的姓名不再通訊錄中!")

if number==2:

try:

dict[name]

print("您輸入的姓名在通訊錄中已存在---> %s:%s" % (name, dict[name]))

flag = input("是否修改使用者資料(yes/no):")

if flag in ["yes","yes","yes"]:

print("\r")

dict[name] = tel

except keyerror:

if number==3:

try:

del(dict[name]) #也可以使用dict.pop

except keyerror:

print("|---您輸入的聯絡人不存在---|")

if number==4:

break

except valueerror as reason:

print("請輸入指令**1-4,錯誤原因為:"+str(reason))

print("|---感謝使用通訊錄程式---|")

參考:

列表 字典(通訊錄)

coding utf 8 phone list zhangsan lisi lian amao agou zhangsi liliu auto hao et haha 建立乙個空字典,用於存放分類好的鍵值對 string dict for string in phone list 從string字串...

通訊錄源程式分析

1 linkmanmodels類庫 1 linkmanmodels類庫,首先建立這樣乙個類庫,包括兩個檔案,person.cs和friendgroup.cs,分別定義了類person 僅包括有關 人 的屬性 和類friendgroup 有關 組 的屬性 2 model定義業務實體,它是傳遞各種資料的...

python通訊錄小程式

最近看 a byte of python 自學python,看完全書之後書最後面有習題,說如果做出來這個程式就可以自稱為python程式設計師 然後我就隨便寫了一下,發現bug真多,哈哈,小程式,也帖出來吧 1 com.address2 filename init py3 先建乙個字典,來存通訊錄資...