看板 Python 關於我們 聯絡資訊
各位版友好,小弟最近在自學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:")) 謝謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.240.225.167 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1490606557.A.825.html
GeoMeTric: 試試 if m in dist == False03/27 17:29
zerof: " if __ not in __ "03/27 17:38
※ 編輯: rogera (140.112.16.181), 03/27/2017 19:00:25
rogera: 不好意思,原先if 裡是typo,已改成m 還是不行. 不過改成 03/27 19:04
rogera: not in 就可以了!不知為何用 if m in dust ==FaLee 不 03/27 19:04
rogera: 行..? 03/27 19:04
NCKUFatPork: 少括號吧 03/27 19:45
NCKUFatPork: if (m in dist)==False不過這樣不太pytonic就是 03/27 19:46
uranusjr: 因為 Python 的 condition chaining 會把那段解讀成 03/27 20:34
uranusjr: (m in dist) and (dist == False) 03/27 20:35
uranusjr: 更正, 應該叫 comparison chaining 才對, 參見文件 6.10 03/27 20:39
s860134: 老實說 除非大家都很熟,寫這種混淆 code 太過炫技 03/27 21:03
s860134: http://codepad.org/BC4gOPPD << 沒有可讀性的一行 03/27 21:34
rexyeah: http://codepad.org/NsVcksxN 03/28 16:13