条件运算符不匹配

当我在 python 中执行以下代码时

print(0<5<2)

它给出 False 作为输出,但在 C++ 中也是一样的

std::cout<<(0<5<2);

返回真

为什么会有这种矛盾?

回答

在 Python 中,0 < 5 < 2相当于0 < 5 and 5 < 2.
在 C++ 中,它相当于static_cast<int>(0 < 5) < 2.

Python 速记最初受到数学的启发,但已经如此泛化,以至于您可以编写非常奇怪的东西,例如

>>> 1 < 5 in [2,3,4]
False
>>> 1 < 5 in [2,3,5]
True

并迷惑你所有的朋友。


以上是条件运算符不匹配的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>