当我在python中执行以下代码时
print(0<5<2)
它给出False作为输出,但在C ++中却是一样的
std::cout<<(0<5<2);
返回True
为什么会有这种矛盾?
在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
并让您所有的朋友迷惑。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句