作者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://webptt.com/cn.aspx?n=bbs/Python/M.1490606557.A.825.html
1F:→ GeoMeTric: 试试 if m in dist == False03/27 17:29
2F:→ zerof: " if __ not in __ "03/27 17:38
※ 编辑: rogera (140.112.16.181), 03/27/2017 19:00:25
3F:→ rogera: 不好意思,原先if 里是typo,已改成m 还是不行. 不过改成 03/27 19:04
4F:→ rogera: not in 就可以了!不知为何用 if m in dust ==FaLee 不 03/27 19:04
5F:→ rogera: 行..? 03/27 19:04
6F:推 NCKUFatPork: 少括号吧 03/27 19:45
7F:→ NCKUFatPork: if (m in dist)==False不过这样不太pytonic就是 03/27 19:46
8F:→ uranusjr: 因为 Python 的 condition chaining 会把那段解读成 03/27 20:34
9F:→ uranusjr: (m in dist) and (dist == False) 03/27 20:35
10F:→ uranusjr: 更正, 应该叫 comparison chaining 才对, 参见文件 6.10 03/27 20:39
11F:→ s860134: 老实说 除非大家都很熟,写这种混淆 code 太过炫技 03/27 21:03