: zipcode = {"台北市": {"中正區": 100, "大同區": 103, "中山區": 104},"新北市": {"萬里區":
: 207, "金山區": 208, "板橋區": 220, "汐止區": 221}}
: 當輸入台北市的時候
: 就會印出台北市內所有區的郵遞區號
: def fun (city):
: n=input('type city:')
: for n in city :
: print value for value in zipcode.get(city).values()
這裡有幾個明顯的 bug:
1. 如果我用 city='台北市' 去 call fun(), 裡面的 for 會變成迭代字串
2. 如果 city 不存在於 zipcode 裡面,zipcode.get() 會抓不到東西;
而你沒有給預設值,會 raise TypeError
: city=("台北市","新北市")
: 不知道要怎麼改 還請各位高手幫忙!!謝謝
> q1. 有一個簡單的解法,用 isinstance 去判斷傳進來(fun())的 city 再
> 決定是否要迭代
> q2. 簡單解法是給預設值 {} (空字典)