这怎么可能是真的?
0 <= 14 < 10
我需要评估一个数字在0到10之间。
但这打破了我的逻辑。
该表达式不应该是假的吗?
答案 0 :(得分:11)
这个表达式:
0 <= 14 < 10
与
相同(0 <= 14) < 10
是
1 < 10
真。
你能做的是:
if (0 <= x && x < 10) { ...
Python是我现在能想到的唯一一种编程语言,其中表达式x < y < z
完成了你期望它做的事情。
答案 1 :(得分:3)
这不是一个错误。这是解析表达式的方式。
从左到右:
0 <= 14 < 10
true < 10
1 < 10
true
正如您所看到的,0 <= 14
是true
,因此它被替换为。{1}}。 true
等于JavaScript中的1
和大多数其他C派生语言。
你应该使用的是:
(0 <= 14) && (14 < 10)
答案 2 :(得分:0)
NO。那是真的。
0 <= 14
为true (same as int(1))
,1 < 10
为true
改为:
if(variable > 0 && variable < 10) {
//do something
}
答案 3 :(得分:0)
0 <= 14 < 10
(0 <= 14) < 10
true < 10
1 < 10
true
答案 4 :(得分:0)
此表达式未评估您期望的方式。它相当于
((0 <= 14) < 10)
因此,第一个评估并返回true,因此您可以使用true < 10
,true < 10
在JavaScript中评估为true
答案 5 :(得分:0)