条件运算符不匹配
当我在 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
并迷惑你所有的朋友。