Hi there! 我是嘟嘟~受到前輩啟發,想說可以紀錄一下自己練習的過程,小女子為程式超超菜鳥,此系列非教學文,僅為個人解題筆記,可能有錯誤或未補充詳盡之處,歡迎前輩們不吝指教!也歡迎正在自學的夥伴一起討論學習~
第一行輸入一整數n
代表電話簿裡資料的數量。
後面n行輸入姓名和8碼電話代表電話簿,並用兩行空格隔開。
後面輸入未知行數的姓名,測試是否有在電話簿裡。你必須一直測試值到沒有輸入值為止。
There are an unknown number of lines of queries. Each line (query) contains a name
to look up, and you must continue reading lines until there is no more input.
如果查詢的姓名有出現在電話簿裡,印出姓名和電話,格式為name=phoneNumber
;
否則,印出Not found
。
3
sam 99912222
tom 11122222
harry 12299933
sam
edward
harry
sam=99912222
Not found
harry=12299933
n = int(input())
phoneBook = {} #建立字典
for i in range(n):
name,phone = input().strip().split() #輸入n筆電話和姓名
phoneBook[name] = phone #新增字典資料[Key:value=name:phone]
for i in range(n):
nameTest = input() #輸入n筆測資
print(nameTest + '=' + phoneBook[nameTest]) if nameTest in phoneBook else print('Not found') #查詢姓名是否在電話簿裡面
結果死在Test Case1,發現是自己太粗心沒看清楚題目寫到測試資料是未知數!! 感謝前輩補充!!
因為不知道測資有幾筆,只能用while迴圈一直讀測資(直到讀取失敗),可以使用try-except用法,try-except必須成對出現,try意思是我先嘗試做一些事,比如說「nameTest = input()」讀取測資,當try裡面做的事失敗就會進入except裡面。
n = int(input())
phoneBook = {} #建立字典
for i in range(n):
name,phone = input().strip().split() #輸入n筆電話和姓名
phoneBook[name] = phone #新增n筆字典資料[key:value=name:phone]
for i in range(n):
while True: #因為不知道測資有幾筆,就一直跑迴圈
try:
nameTest = input() #嘗試讀取測資,沒有測資時會失敗,進入except
print(nameTest + '=' + phoneBook[nameTest]) if nameTest in phoneBook else print('Not found') #查詢姓名是否在電話簿裡面
except:
break #如果沒有測資了,跳出迴圈
輸入
2
Ace 12345678
Luffy 87654321
Zoro
Nami
Usopp
Luffy
結果為
Not found
Not found
Not found
Luffy=87654321
字典裡元素的"值"(value)可以是任何的資料型態,例如: 字串、整數、list、物件等等。但 key 必須是唯一且不可變的,也就是在寫程式時不可隨意更動,如整數、字串、tuple 等。
Python 創建字典的方式有兩種:
例如:
movie_1 = {'name': 'Saving Private Ryan','year': 1998,'director': 'Steven Spielberg'}
movie_2 = dict(name='The Breakfast Club',year=1985,director='John Hughes')