作者ggirls (哥)
看板Python
标题[问题] `in None` 的 exception 怎麽避免?
时间Mon Aug 20 12:21:42 2018
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://webptt.com/cn.aspx?n=bbs/Python/M.1534738905.A.9C0.html
1F:推 TitanEric: if e is None就可以 08/20 12:24
※ 编辑: ggirls (114.136.239.216), 08/20/2018 12:28:20
2F:推 Yshuan: 别用!e 假如是0,False,[],() 这些会混淆 08/20 13:06
3F:→ Yshuan: 从'a' in e来看, 期许字串可用 isinstance(e, basestring) 08/20 13:09
4F:→ s860134: if e and 'a' in e: 08/20 13:11
5F:→ s860134: 因为原本条件就已经限制 e 中包含 'a',故前面只要确定 e 08/20 13:12
6F:→ s860134: 不是 None 就好了,当然这写法在特殊情形下是错的 08/20 13:12
7F:推 handsomeLin: 请善用and 08/20 15:57