我试图比较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()
剥夺了空白。
答案 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
,例如,某些已知的字符串在运行时被初始化为相同的值。