相关疑难解决方法(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万
查看次数

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

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

我使用的是Python 2.x.

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

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

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

python comparison nonetype

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

为什么空格会影响相等字符串的身份比较?

我注意到为相同的字符串添加空格使得它们比较不相等is,而非空间版本比较相等.

a = 'abc'
b = 'abc'
a is b
#outputs: True

a = 'abc abc'
b = 'abc abc'
a is b
#outputs: False
Run Code Online (Sandbox Code Playgroud)

我已经阅读了关于将字符串与==和进行比较的问题is.我认为这是一个不同的问题,因为空格字符正在改变行为,而不是字符串的长度.看到:

a = 'abc'
b = 'abc'
a is b # True

a = 'gfhfghssrtjyhgjdagtaerjkdhhgffdhfdah'
b = 'gfhfghssrtjyhgjdagtaerjkdhhgffdhfdah'
a is b # True
Run Code Online (Sandbox Code Playgroud)

为什么在字符串中添加空格会改变此比较的结果?

python

15
推荐指数
1
解决办法
1827
查看次数

标签 统计

python ×3

comparison ×1

equality ×1

nonetype ×1

reference ×1

semantics ×1