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 先建乙個字典,來存通訊錄資...