python - 条件运算符不匹配
问题描述
当我在 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
并迷惑你所有的朋友。
推荐阅读
- powershell - 使用 Powershell 将图像插入 Powerpoint
- r - R中的堆叠水平条形图
- python - Python:Selenium:无法获取浏览器控制台日志
- webstorm - 如何更改面包屑顶部边框?
- android - 当 Spinner 下拉菜单出现和消失时,是否有任何事件/侦听器?
- javascript - emacs 更好的 js 语法高亮
- java - 用于从安全网络读取文件的 Apache Commons VFS 在一种环境中工作,但在另一种环境中却没有?
- algorithm - 红黑树旋转:当我有 y = x.right; x.right = y.left。y.left.p = x 写成 x.right.p = x 一样吗
- typescript - 带有双爆炸符号的打字稿返回
- android - 如何在 Android 中使用 Camera2 API 拍摄多张照片而不进行预览?