[問題] `in None` 的 exception 怎麼避免?

看板Python作者 (哥)時間7年前 (2018/08/20 12:21), 7年前編輯推噓3(304)
留言7則, 4人參與, 7年前最新討論串1/1
for e in es: if 'a' in e: print(e) 上面的程式,e 有可能是 None,所以 if 'a' in e: 會發生 Exception 一種是用 if !e: 先把這種情況濾掉;一種是抓這種 Exception 再處理。 請問還有別的比較簡潔的方法嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.136.239.216 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1534738905.A.9C0.html

08/20 12:24, 7年前 , 1F
if e is None就可以
08/20 12:24, 1F
※ 編輯: ggirls (114.136.239.216), 08/20/2018 12:28:20

08/20 13:06, 7年前 , 2F
別用!e 假如是0,False,[],() 這些會混淆
08/20 13:06, 2F

08/20 13:09, 7年前 , 3F
從'a' in e來看, 期許字串可用 isinstance(e, basestring)
08/20 13:09, 3F

08/20 13:11, 7年前 , 4F
if e and 'a' in e:
08/20 13:11, 4F

08/20 13:12, 7年前 , 5F
因為原本條件就已經限制 e 中包含 'a',故前面只要確定 e
08/20 13:12, 5F

08/20 13:12, 7年前 , 6F
不是 None 就好了,當然這寫法在特殊情形下是錯的
08/20 13:12, 6F

08/20 15:57, 7年前 , 7F
請善用and
08/20 15:57, 7F
文章代碼(AID): #1RUa7Pd0 (Python)
文章代碼(AID): #1RUa7Pd0 (Python)