相关疑难解决方法(0)

为什么"False,True]中的"not(True)"返回False?

如果我这样做:

>>> False in [False, True]
True
Run Code Online (Sandbox Code Playgroud)

那回来了True.只是因为False在列表中.

但如果我这样做:

>>> not(True) in [False, True]
False
Run Code Online (Sandbox Code Playgroud)

那回来了False.而not(True)等于False:

>>> not(True)
False
Run Code Online (Sandbox Code Playgroud)

为什么?

python python-2.7 python-3.x

477
推荐指数
8
解决办法
3万
查看次数

为什么([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
查看次数

为什么`None is None is None`返回True?

今天,在一次采访中,首席技术官问我看起来像一个简单的问题,

这句话的回报是什么?:

None is None is None
Run Code Online (Sandbox Code Playgroud)

我认为Python执行了第一个操作None is None并将返回True.之后,它将比较True is None哪些将返回False.但令我惊讶的是,正确的答案是True.我试图找到这个问题的答案,但经过几天的搜索我没有发现任何东西.有人可以解释为什么会这样吗?

python python-2.7 python-3.x

56
推荐指数
3
解决办法
2115
查看次数

在Python中编写双重不等式时的运算符优先级是什么(显式在代码中,如何为数组重写?)

当我要求类似的东西时,按顺序执行的具体代码是什么

>>> 1 <= 3 >= 2
True
Run Code Online (Sandbox Code Playgroud)

如果两者具有相同的优先权并且只是它们的评估顺序,为什么第二个不等式起(3 >= 2)代替(True >= 2)

考虑一下这些之间的区别

>>> (1 < 3) < 2
True

>>> 1 < 3 < 2
False
Run Code Online (Sandbox Code Playgroud)

它只是一个纯粹的语法快捷方式硬编码到Python中,以扩展第二个作为and两个语句?

我可以改变一个类的这种行为,以便a <= b <= c扩展到不同的东西吗?它看起来像以下情况

a (logical operator) b (logical operator) c 
    --> (a logical operator b) and (b logical operator c)
Run Code Online (Sandbox Code Playgroud)

但真正的问题是如何在代码中实现它.

我很好奇,这样我可以复制这种__lt____gt__行为在一些我自己的类,但我感到困惑,这是如何实现的固定中部参数不变.

这是一个具体的例子:

>>> import numpy as np

>>> tst = np.asarray([1,2,3,4,5,6])

>>> 3 <= tst
array([False, False, …
Run Code Online (Sandbox Code Playgroud)

python operator-overloading inequalities

10
推荐指数
2
解决办法
8447
查看次数

('ab'中的'a'= = True)评估为False

这是我在摆弄python解释器时得到的

[mohamed@localhost ~]$ python
Python 2.7.5 (default, Apr 10 2015, 08:09:14) 
[GCC 4.8.3 20140911 (Red Hat 4.8.3-7)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 'a' in 'abc'
True
>>> 'a' in 'abc' == True
False
>>> 'a' in 'abc' == False
False 
>>> ('a' in 'abc') == True
True
>>> ('a' in 'abc') == False
False


>>> ('a' in 'abc' == True) or ('a' in 'abc' == False)
False
>>> (('a' in 'abc') == True) …
Run Code Online (Sandbox Code Playgroud)

python python-2.x logical-operators

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