作者rogera (liveisawesome)
看板Python
標題[問題]for loop 搭配 if 問題
時間Mon Mar 27 17:22:34 2017
各位版友好,小弟最近在自學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