提问人:Hari Kiran 提问时间:1/19/2022 最后编辑:Maik LowreyHari Kiran 更新时间:2/13/2022 访问量:103
为什么 5 <= -15 == 5 >= 1 != 20 是假的?[复制]
Why 5 <= -15 == 5 >= 1 != 20 is False? [duplicate]
问:
有人能告诉我为什么是假的吗?5 <= -15 == 5 >= 1 != 20
因为当我试图解决它时,我做了以下事情:
i) <= , >= 具有更高的优先级,因此它变为False == True != 20
ii) ==,!= 具有相同的优先级,因此基于关联性,即从左到右变为False != 20
iii) 最后,答案是True
但是,当我在 python 解释器中尝试相同的操作时,它返回False
我想知道为什么会这样? 提前致谢。
答:
1赞
ikegami
1/19/2022
#1
此处记录了 Python 的运算符优先级。与您声称的相反,所有这些比较运算符都具有相同的优先级。
通常,人们会优先使用关联性来处理关系。但是比较运算符很特殊。Python 支持链接。这意味着
x relop1 y relop2 z
是
x relop1 y and y relop2 z
(除了只评估一次。y
所以
5 <= -15 == 5 >= 1 != 20
= ( 5 <= -15 ) and ( -15 == 5 ) and ( 5 >= 1 ) and ( 1 != 20 )
= False and False and True and True
= False
评论
0赞
Kelly Bundy
1/19/2022
我发现这有点误导,因为这些比较实际上并没有得到评估。and False and True and True
0赞
ikegami
1/19/2022
@Kelly邦迪,“=”被视为“等同于”
评论
False
5 <= -15
False
-15 == 5