Jay*_*esh 5 python logical-operators python-2.7 python-3.x
我是Python新手。我有一个三个变量x, y,z作为int. 我比较了if条件中的三个变量。我对以下代码结果感到困惑。
该表达式的x < y <= z计算结果为 false。
让我们假设x = 10、y = 5和z = 0。如果x < y变为False,则False <= 0变为True。但输出为False。为什么?
我的Python脚本:
#!/usr/bin/python
x = 10
y = 5
z = 0
if (x < y < z):
print"True"
else:
print"False"
Run Code Online (Sandbox Code Playgroud)
文件说:
比较可以任意链接;例如,x < y <= z 等价于 x < y 和 y <= z,只不过 y 仅计算一次(但在这两种情况下,当发现 x < y 为 false 时,根本不会计算 z)。
x < y <= z既不是(x < y) <= z也不是x < (y <= z)。x < y <= z相当于x < y and y <= z, 并且是从左到右计算。
与 C 和 C++ 不同,Python 中的逻辑 AND没有关联性。此类运算符的序列有单独的规则,并且不能表示为结合性。
x < y and y <= z仅当第一个参数为true时才计算第二个参数,因为它and是短路运算符。
| 归档时间: |
|
| 查看次数: |
8973 次 |
| 最近记录: |