我遇到了上面的表达,我认为应该评估为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.
尝试寻找答案,但无法得到具体的答案.任何人都可以帮助我理解这种行为吗?
Jea*_*bre 12
1 in range(2) == True 是一个运营商链,就像你做的那样 0 < 10 < 20
要真实,你需要
1 in range(2)
和
range(2) == True
两者都是真的.后者是错误的,因此结果.添加括号不会使运算符链接(某些运算符在括号中),这解释了(1 in range(2)) == True工作.
尝试:
>>> 1 in range(2) == range(2)
True
Run Code Online (Sandbox Code Playgroud)
再一次,一个很好的教训就是不能将事物等同于== True或者说!= False多余的事物是多余的,而且最坏的情况是有毒的.
| 归档时间: |
|
| 查看次数: |
135 次 |
| 最近记录: |