这是一个非常有趣的问题,我们知道一般来说 True=1 False=0
在python里面 1>0==False 的结果是True,如果运算顺序是(1>0)==False或者1>(0==False)都说不通吧?
大家知道是什么原因吗?
python是比较特殊支持链式对比的编程语言,所以你的 1>0==False 实质是 1>0 and 0==false
类似的还有 100 < a <200 这样的链式判断表达式,这样的表达式意义更符合原始数学类式的形式。
你这个思维是不是掉进面向过程的思维里了,为什么说python更符合人类语法阅读习惯呢?就体现在这里了。
用数学的方式理解 a=0;1 > a = 0 这个表达式是成立的,所以运算结果为True
这种表达式跟C语言那些不一样,它的意思等价于(1>0 && 0==False)
这个跟运算优先级无关的,所有语言的运算优先级都是一样
你这样写是一个链式对比的例子,实际表达是1>0and0==false那么他的返回两个都是真,所以and后也是真,
你后面两个加了括号说法实际返回值都是false