[英]comparison operators' priority in Python vs C/C++
在C / C ++中,比较运算符(如< >
优先级高于==
,对吧?
所以在C / C ++中,代码将评估为true
或1
:
if(3<4 == 2<3) { //3<4 == 2<3 will evaluate to true, right?
...
}
但在Python中,似乎错了:
3<4 == 2<3 #this will evaluate to False in Python.
题
在Python中,每个比较运算符都具有相同的优先级吗?
在Python中,不仅比较运算符给予相同的优先级,它们也被特别处理(它们链而不是组)。 从文档 :
形式上,如果
a, b, c, ..., y, z
是表达式而op1, op2, ..., opN
是比较运算符,则a op1 b op2 c ... y opN z
等效于a op1 b and b op2 c and ... and y opN z
,除了每个表达式最多被评估一次。
在你的情况下,表达式
3<4 == 2<3
相当于
3 < 4 and 4 == 2 and 2 < 3
由于第二个条款,这是False
。
简答:是的,所有的比较都有相同的优先权
答案很长:您可能希望查看文档: Python的优先级
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.