在写代码的时候,我们通常会用if 进行判断,判断某个字符串里是否某个字符,比如:
if 'a' in 'abc':
pass
# 返回True
时间长了,我们可能会需要进行or的组合判断,如以下代码:
if 'a' or 'b' in 'def':
pass
# 这里居然返回的也是True!!!
这时问题就出现了,上述条件返回的是True!

这不是我们想到的结果啊!!!
大概率你想判断的是 a 或者是b 是否在字符串 def中。正确的写法应该是:
if 'a' in 'def' or 'b' in 'def':
pass
# 这下返回False,终于对了
这样返回的才是False
如果按照第一种写法,Python会理解为(‘a’) or (‘b’ in ‘def’),因为’a’是True,所以整个表达式的值就是True,如图所示:

所以,就算再简洁的语法,不该省略的地方还是不要省略,切记!!!
25万+

被折叠的 条评论
为什么被折叠?



