有人可以向我解释为什么Python解释器将这个表达式评估为False吗?
1 in [1] == True
我希望[1]中的1可以评估为True,并且显然True == True将为True。但这不是发生的事情-表达式为False。为什么会这样?
答案 0 :(得分:11)
==
和in
都是比较运算符。并且当您有多个这样的比较运算符时,Python会将其视为链式比较。例如,1 < x < 10
等效于1 < x and x < 10
。
在您的情况下,1 in [1] == True
等同于(1 in [1]) and ([1] == True)
,其结果为False
。
答案 1 :(得分:1)
如果您有类似python的表达式,请将其拆分为更多语句。实际上:
1 in [1] == True equals to: (1 in [1]) and ([1] == True)
由于[1] != True
,右侧为假,整个句子为假