作者kevinkung (Jaguar)
看板Python
标题Re: [问题]for loop 搭配 if 问题
时间Tue Mar 28 11:54:42 2017
※ 引述《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://webptt.com/cn.aspx?n=bbs/Python/M.1490673284.A.340.html
1F:→ BigBank: 可以直接 for index in zipcode 03/28 19:53
2F:→ freeunixer: 都把zipcode弄成dict了,还不去match key call value? 03/28 22:28
3F:→ s860134: 试问 明天你县市多了 你是不是又要改 code? 03/28 22:34
4F:→ coeric: 没人三天两头就在改县市数量的啦...XDDDD 03/29 13:12
5F:推 rexyeah: 前3楼的建议其实对程式的维护比较好 03/29 15:12
6F:推 coeric: 同意楼上 可以的话,当然是写活一点比较好维护 03/29 22:12
7F:→ coeric: (像我没能力...就先写死再说了....理由同上:没那麽常改) 03/29 22:13
8F:→ s860134: data 和逻辑要分离是一种习惯,不然再利用性太差 03/31 00:23