为什么这两个字符串彼此不相等?

时间:2015-05-13 18:08:38

标签: python python-2.7

我试图比较python中的两个字符串,由于某种原因它们只是不匹配。

我确定没有空格,他们都是字符串类型,但即使他们完全相同,也仍然没有运气。

if versions['ksp_version'] is self.version:

字符串都是' 1.0.2'我没有运气is==

有没有更好的方法来比较我刚刚缺失的python中的字符串?

编辑:更多背景。

所以,我添加了这些行并打印出变量。

print versions['ksp_version']
print type(versions['ksp_version'])
print "===="
print self.version
print type(self.version)

这就是我们得到的。

1.0.2
<type 'str'>
====
1.0.2
<type 'str'>

基于此,它们看起来一样。他们都使用.strip()剥夺了空白。

1 个答案:

答案 0 :(得分:3)

很难说没有看到实际的字符串。当您从文件中读取内容时,请务必strip您要比较的行,以便最后删除潜在的\n

with open("input.txt") as f:
  for line in f:
    print line == "asd"
    print line.strip() == "asd"

打印

False
True

代表input.txt

asd
对于同一个对象的字符串,

is只会产生True,例如,某些已知的字符串在运行时被初始化为相同的值。