相关疑难解决方法(0)


Python无比较:我应该使用"是"还是==?

可能重复:
`==`运算符何时不等于`is`运算符?(蟒蛇)

我使用的是Python 2.x.

我比较时编辑给了我一个"警告"下划线my_var == None,但是当我使用时没有警告my_var is None.

我在Python shell中做了一个测试,并确定两者都是有效的语法,但我的编辑器似乎说这my_var is None是首选.

是这种情况,如果是这样,为什么?

python comparison nonetype

182
推荐指数
4
解决办法
11万
查看次数

为什么表达式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
查看次数

理解Python的"是"运算符

is运营商不匹配变量的值,但这些实例本身.

它到底意味着什么?

我声明了两个变量命名xy在两个变量中分配相同的值,但是当我使用is运算符时它返回false .

我需要澄清一下.这是我的代码.

x = [1, 2, 3]
y = [1, 2, 3]

print x is y #It prints false!
Run Code Online (Sandbox Code Playgroud)

python operators python-3.x

102
推荐指数
5
解决办法
8万
查看次数

Python比较运算符从左到右链接/分组?

运算符优先级的Python文档说明:

同一个框组中的操作员从左到右(除了比较,包括测试,它们都具有相同的优先级和从左到右的链 - 参见比较部分......)

这是什么意思?特别:

  1. "从同一个盒子组中的操作员从左到右(除了比较......)" - 做比较不是从左到右分组?

  2. 如果比较不是从左到右分组,那么他们做了什么呢?他们"链"而不是"群体"吗?

  3. 如果比较"链"而不是"组","链接"和"分组"之间有什么区别?

  4. 什么样的例子可以证明比较运算符从左到右而不是从右到左链接?

python comparison operator-precedence associativity

16
推荐指数
1
解决办法
2309
查看次数

链接"是"运营商

python是否支持链接is运算符,如下所示?

a = None
b = None
a is b is None
Run Code Online (Sandbox Code Playgroud)

这个输出True,一些文档引用会很好.

python comparison comparison-operators operator-keyword

10
推荐指数
1
解决办法
496
查看次数