微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python 连续等式和不等式运算符结果

如何解决Python 连续等式和不等式运算符结果

我不确定是否有任何实际用例,但是在 Jupyter notebook 中玩弄了 Python 3 之后,我想知道我从这样的表达式中得到的结果:

54 == 54 == 54  # True in Python,False in Javascript
54 == 54 != 54  # False in Python,True in Javascript
54 != 54 != 54  # False in Python,True in Javascript
54 != 54 == 54  # False in Python,False in Javascript

如果使用值 0 和 1,Python 会给出相同的结果(我没有测试 Javascript)。

如果第一个等式或不等式产生一个布尔值,然后与一个整数进行比较(从左到右计算具有相同优先级的运算符,布尔值永远不等于整数),那么 Javascript 结果就是我所期望的。

我试图想象给出 Python 结果的规则,但我很难想出一个涵盖所有情况的集合。在某些方面,Python 给出的答案更多是我通过查看表达式直观地期望的。但是要让它起作用,似乎第一个运算符的结果必须是布尔值以外的其他值。

我并不是说任何一个结果都一定是错误的。我只是想知道 Python 结果是如何得出的。


等等,如果 Python 求值:

a == a == a
a == a != a
a != a == a
a != a != a

像这样:

(a == a) and (a == a)
(a == a) and (a != a)
(a != a) and (a == a)
(a != a) and (a != a)

那将解释结果,尽管不是 Python 以这种方式解析它的原因。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。