是否在解释器中弄乱了值和概念,并因为4 <5为True撞上了逻辑绊脚石,但该输出不被认为等于== True?
答案 0 :(得分:1)
从Python documentation
形式上,如果a,b,c,...,y,z是表达式,而op1,op2,...,opN是表达式 比较运算符,则op1 b op2 c ... y opN z等于 op1 b和b op2 c和... y opN z,除了每个表达式是 最多评估一次。
根据此规范,4 < 5 == True
等于4 < 5 and 5 == True
(在Python中从operator precedence等于(4 < 5) and (5 == True)
),其中4 < 5
是True
,但5 == True
是False
。所以True and False
是False
。
答案 1 :(得分:1)
在Python3中:4 < 5 == True
等效于4 < 5 and 5 == True
,由于False
的结果为5 != True
。
请注意,<
和==
的优先级相同。
参考文档https://docs.python.org/3/reference/expressions.html#comparisons
答案 2 :(得分:0)
>>> 4<5
True
>>> 4<5 == True
False
>>> (4<5) == True
True
>>>
我希望这可以消除您的疑问。 4<5 == True
的评估为4<5 and 5 == True
,如果4<5
为True,则总体返回False,但是5 == True
为False。这是由于<
和==
具有相同的优先级。