相关疑难解决方法(0)

"=="和"是"之间有区别吗?

我的Google-fu让我失望了.

在Python中,以下两个相等的测试是否等效?

n = 5
# Test one.
if n == 5:
    print 'Yay!'

# Test two.
if n is 5:
    print 'Yay!'
Run Code Online (Sandbox Code Playgroud)

对于您要比较实例的对象(list比如说),这是否适用?

好的,所以这样的答案我的问题:

L = []
L.append(1)
if L == [1]:
    print 'Yay!'
# Holds true, but...

if L is [1]:
    print 'Yay!'
# Doesn't.
Run Code Online (Sandbox Code Playgroud)

所以==测试值测试的地方is是否是同一个对象?

python equality reference semantics

630
推荐指数
11
解决办法
33万
查看次数

为什么(0-6)是-6 =假?

可能重复:
Python"is"运算符使用整数意外运行

今天我试着调试我的项目,经过几个小时的分析,我得到了这个:

>>> (0-6) is -6
False
Run Code Online (Sandbox Code Playgroud)

但,

>>> (0-5) is -5
True
Run Code Online (Sandbox Code Playgroud)

你能解释一下,为什么?也许这是某种错误或非常奇怪的行为.

> Python 2.7.3 (default, Apr 24 2012, 00:00:54) [GCC 4.7.0 20120414 (prerelease)] on linux2
>>> type(0-6) 
<type 'int'>
>>> type(-6) 
<type 'int'>
>>> type((0-6) is -6)
<type 'bool'>
>>> 
Run Code Online (Sandbox Code Playgroud)

python debugging integer cpython

129
推荐指数
4
解决办法
4897
查看次数

python'不是'运营商

我注意到有一个比较运算符is not.我应该把它翻译成

!= 
Run Code Online (Sandbox Code Playgroud)

代替

== not
Run Code Online (Sandbox Code Playgroud)

python

44
推荐指数
3
解决办法
6万
查看次数

在Python中,'e in c'与'e not in c'不同吗?

可能重复:
使用"not"和"in"关键字的语法顺序

我的TA声称e not in c并不总是产生相同的结果not e in c(他并没有给出解释,为什么虽然).我从来没有亲自在任何人的代码中亲眼看到第二种形式(除了他和书籍解释说这两种形式相同的)并且从未见过两者在行为上有所不同所以我对这种说法持怀疑态度.没有通过谷歌找到任何东西我决定来这里.

那么,任何人都有任何关于两者行为不同的情况的信息吗?

python

19
推荐指数
1
解决办法
532
查看次数

标签 统计

python ×4

cpython ×1

debugging ×1

equality ×1

integer ×1

reference ×1

semantics ×1