Python 为什么这个布尔表达式的计算结果为False?

Python 为什么这个布尔表达式的计算结果为False?,python,Python,有人能给我解释一下为什么Python解释器对这个表达式求值为False吗 1 in [1] == True 我希望[1]中的1将计算为True,显然True==True将为True。然而,事实并非如此——表达式是错误的。为什么会发生这种情况?=和中的都是比较运算符。当您有多个这样的比较运算符时,Python将其视为链式比较。例如,1

有人能给我解释一下为什么Python解释器对这个表达式求值为False吗

1 in [1] == True

我希望[1]中的1将计算为True,显然True==True将为True。然而,事实并非如此——表达式是错误的。为什么会发生这种情况?

=
中的
都是比较运算符。当您有多个这样的比较运算符时,Python将其视为链式比较。例如,
1
相当于
1


在您的例子中,
1in[1]==True
相当于
(1in[1])和([1]==True)
,如果您有这样一个python表达式,它的计算结果为
False

。事实上:

1 in [1] == True equals to: (1 in [1]) and ([1] == True)

右侧为false,因为
[1]!=正确
而整个句子都是错误的

尝试执行
(1 in[1])==正确
(1 in[1])==正确的计算结果与预期的一样正确现在有意义了。谢谢