看板 Python 關於我們 聯絡資訊
※ 引述《rogera (liveisawesome)》之銘言: : 各位版友好,小弟最近在自學python練習題目時,碰到個問題想請各位版友解惑一下 : 在跑結果時,似乎bug一直出現在 if 的流程控制裡,想請問這樣寫為什麼會有錯.. : 題目: : Q:如何輸入一個區域名稱,找出這個區域所代表的郵遞區號? (ex. 輸入:新店區 回傳: : 23 : # 下面 zipcode 存放台北市,基隆市,新北市各區的郵遞區號 : zipcode = {"台北市":{"中正區": 100, "大同區": 103, "中山區": 104, "松山區": 10 : 5, : "基隆市":{"仁愛區": 200, "信義區": 201, "中正區": 202, "中山區": 20 : 3, : "新北市": {"萬里區": 207, "金山區": 208, "板橋區": 220, "汐止區": 2 : 21 : 自己寫的Ans: : def outputzip(m): : for p in zipcode: : dist=zipcode[p] : if m in dist == False: # 似這句一直沒有起作用.. : continue : print(dist[m]) : outputzip(input("please input a district:")) : 謝謝!! 自己測試了一下,這樣寫應該可讀性更高,請參考: zipcode = { 'Taipei':{'A': 100, 'B': 103, 'C': 104, 'D': 105}, 'Keelung':{'E': 200, 'F': 201, 'G': 202, 'H': 203} } def input(place): global zipcode for index in range(2): if place in zipcode.values()[index]: return zipcode.values()[index][place] -- Sent from my Windows -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.92.30.249 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1490673284.A.340.html
BigBank: 可以直接 for index in zipcode 03/28 19:53
freeunixer: 都把zipcode弄成dict了,還不去match key call value? 03/28 22:28
s860134: 試問 明天你縣市多了 你是不是又要改 code? 03/28 22:34
coeric: 沒人三天兩頭就在改縣市數量的啦...XDDDD 03/29 13:12
rexyeah: 前3樓的建議其實對程式的維護比較好 03/29 15:12
coeric: 同意樓上 可以的話,當然是寫活一點比較好維護 03/29 22:12
coeric: (像我沒能力...就先寫死再說了....理由同上:沒那麼常改) 03/29 22:13
s860134: data 和邏輯要分離是一種習慣,不然再利用性太差 03/31 00:23