【发布时间】:2016-08-17 11:34:43
【问题描述】:
注意:在您对我的问题投反对票或关闭我的问题,或将其标记为重复之前,我向您保证,我已经在 SO 和 Google 上查看了几十个类似的问题,但经过更多一个多小时,我还没有解决这个问题。没有其他答案能解决我的问题。
问题 我有这个 Python 代码:
text = ''
text += '<' + '/' + '>'
print text, '</>'
print repr(text), repr('</>')
if text is '</>':
print 'Equal'
else:
print 'Not equal!'
我只是想比较两个字符串。出于某种原因,我需要将字符一个一个地连接到text。我希望 if 语句评估为True,但事实并非如此。我不知道为什么!
这是输出:
</> </>
'</>' '</>'
Not equal!
我是 Python 新手,并且正在使用 Python 2.7。有人可以帮忙吗?
【问题讨论】:
-
@gdlmx 那时我一定是找错地方了。谢谢。
-
我从没想过要寻找
is和==之间的区别,这就是为什么我从来没有找到这个帖子。 -
is检查对象身份,即对象在内存中的方向而不是它们包含的值,为此使用==。只有内置常量才能保证与is和==评估相同,这就是为什么您会更频繁地看到a is None这样的东西而不是a == None,因为前者更惯用。因此,除非您正在检查None或者它们是否位于内存中的同一位置(也就是指向同一事物的点),否则请使用==
标签: python