如果我这样做:
>>> 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)
为什么?
当我看到这个问题的答案时,我发现我不明白自己的答案.
我真的不明白这是如何被解析的.为什么第二个示例返回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) 今天,在一次采访中,首席技术官问我看起来像一个简单的问题,
这句话的回报是什么?:
None is None is None
Run Code Online (Sandbox Code Playgroud)
我认为Python执行了第一个操作None is None并将返回True.之后,它将比较True is None哪些将返回False.但令我惊讶的是,正确的答案是True.我试图找到这个问题的答案,但经过几天的搜索我没有发现任何东西.有人可以解释为什么会这样吗?
当我要求类似的东西时,按顺序执行的具体代码是什么
>>> 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解释器时得到的
[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)