【发布时间】:2011-09-09 14:24:09
【问题描述】:
可能重复:
Python '==' vs 'is' comparing strings, 'is' fails sometimes, why?
我将跳过我告诉你我如何测试我的代码并直接跳到问题的部分。
Python 似乎在将一个 unicode 字符串拆分为 if 语句中的另一个内联 unicode 字符串时遇到了一些问题。
>>>zone = u'domain.com.'
>>>zone[-1:]
u'.'
>>>u'.' is u'.' #works fine
True
>>> z[-1:] == u'.' #works fine
True
>>> zone[-1:] is u'.' # FAILS !
False
这是我的实际代码sn-p
>>>if zone[-1:] is not u'.':
>>> #this line will always run !
如果我将“不是”更改为 != 代码工作正常!
有谁知道为什么“是”导致比较失败?
【问题讨论】:
-
is比较的是同一性,而不是相等性。 -
@MartijnPieters stackoverflow.com/questions/4165688/… 我猜这几乎是钉子了
标签: python if-statement unicode-string