相关疑难解决方法(0)

为什么(0 <5 <3)返回true?

我在jsfiddle.net上玩,我很好奇为什么这会返回true?

if(0 < 5 < 3) {
    alert("True");
}
Run Code Online (Sandbox Code Playgroud)

这样做:

if(0 < 5 < 2) {
    alert("True");
}
Run Code Online (Sandbox Code Playgroud)

但这不是:

if(0 < 5 < 1) {
    alert("True");
}
Run Code Online (Sandbox Code Playgroud)

这个怪癖是否有用?

javascript boolean-logic compare operators

345
推荐指数
7
解决办法
1万
查看次数

为什么([1,0] == True中的1)评估为False?

当我看到这个问题的答案时,我发现我不明白自己的答案.

我真的不明白这是如何被解析的.为什么第二个示例返回False?

>>> 1 in [1,0]             # This is expected
True
>>> 1 in [1,0] == True     # This is strange
False
>>> (1 in [1,0]) == True   # This is what I wanted it to be
True
>>> 1 in ([1,0] == True)   # But it's not just a precedence issue!
                           # It did not raise an exception on the second example.

Traceback (most recent call last):
  File "<pyshell#4>", line 1, in <module>
    1 in ([1,0] == …
Run Code Online (Sandbox Code Playgroud)

python syntax operator-precedence

149
推荐指数
1
解决办法
4630
查看次数

为什么表达式0 <0 == 0在Python中返回False?

在Python 2.6中查看Queue.py,我发现这个构造我发现有点奇怪:

def full(self):
    """Return True if the queue is full, False otherwise
    (not reliable!)."""
    self.mutex.acquire()
    n = 0 < self.maxsize == self._qsize()
    self.mutex.release()
    return n
Run Code Online (Sandbox Code Playgroud)

如果maxsize为0,则队列永远不会满.

我的问题是它如何适用于这种情况?如何0 < 0 == 0被认为是假的?

>>> 0 < 0 == 0
False
>>> (0) < (0 == 0)
True
>>> (0 < 0) == 0
True
>>> 0 < (0 == 0)
True
Run Code Online (Sandbox Code Playgroud)

python

133
推荐指数
5
解决办法
6748
查看次数

链式比较运算符的语言支持(x <y <z)

一个问题被张贴有关链比较运营商以及它们如何在不同的语言解释.

链接比较运算符意味着(x < y < z)将被解释为((x < y) && (y < z))而不是((x < y) < z).

对该问题的评论表明,Python,Perl 6和Mathematica支持链接比较运算符,但是其他语言支持这个功能,为什么它不常见?

快速浏览一下Python文档就可以看出这个功能至少从1996年开始.有没有更多语言没有添加这种语法的原因?

静态类型语言会出现类型转换问题,但还有其他原因这种情况不常见吗?

syntax programming-languages operators

21
推荐指数
3
解决办法
4459
查看次数

为什么1在范围(2)== True评估为False?

我遇到了上面的表达,我认为应该评估为True,但事实并非如此.

>> s = 1 in range(2)
>> s == True
>> True
Run Code Online (Sandbox Code Playgroud)

上述声明按预期工作但在以下时间:

1 in range(2) == True
Run Code Online (Sandbox Code Playgroud)

执行时,它的计算结果为False.

尝试寻找答案,但无法得到具体的答案.任何人都可以帮助我理解这种行为吗?

python

4
推荐指数
1
解决办法
135
查看次数

100 <= x <= 150作为if()中的参数,表现得很有趣

我有一个if声明,然后是几个else if声明.所有if/else if语句的参数结构都是这样的:

if (100 <= x <= 149) //do this
else if (150 <= x <= 199) //do that
else if ...etc...
Run Code Online (Sandbox Code Playgroud)

但是,由于某种原因,只有第一个if语句被执行.X可以是200,只识别第一个if语句.

当X不符合前面语句的参数时,我不确定为什么它不会转移到下一个if语句.这在Obj-C中不起作用吗?任何帮助表示赞赏.谢谢

c algorithm conditional if-statement objective-c

3
推荐指数
2
解决办法
461
查看次数

C中的复合关系运算符

我试图将一段伪代码转换为C代码,我有条件

if (-4 <= X <=8)
THEN {Do Something}
else
{Do something else}
Run Code Online (Sandbox Code Playgroud)

if语句中的语法是否有效?可以在逻辑条件中将常量放在变量之前以检查真值吗?

c syntax if-statement logical-operators

-1
推荐指数
1
解决办法
1301
查看次数