Python 3 - 两个相同的字符串不匹配==

时间:2015-07-01 16:01:08

标签: python string python-3.x equals

我从excel电子表格中提取string,称之为x。使用print语句时,会打印单词PLANT

print(x)
PLANT

当我执行以下操作时:

if x == 'PLANT':
    print('YES')
else:
    print('NO')

它始终打印NO。

我认为这是由==检查比表面字符串更基本的东西引起的。我尝试使用ascii命令进一步调查,但这也没有显示任何差异。

ascii(x)

是否还有其他命令我可以尝试将xPLANT区分开来并理解它们不匹配的原因?

测试的东西

repr(x)
'PLANT'

type(x)
<class 'str'>

ascii(x)
'PLANT'

发现差异:

id(x)
30805824

id('PLANT')
28515008

3 个答案:

答案 0 :(得分:1)

可能有可能在字母周围留出空格。因此,最好在检查条件之前剥离空格字符。

if x.strip() == 'PLANT':

答案 1 :(得分:0)

试试这个

x.strip() == 'PLANT':

答案 2 :(得分:0)

我遇到了同样的问题,发现我从文件中读取的值被NUL终止('\ 0'),而与之比较的python字符串却没有。

不仅仅是调用将删除空格的Strip,而是使用您要删除的特定字符来调用Strip。

if x.strip('\0') == "PLANT":
     print("match")

我发现了我的问题

print([ord(i) for i in x]) 

如Avinash Raj所建议。

我意识到这似乎不适用于原始海报,但是由于这解决了我面临的一个非常相似的问题,因此我想在这里发表,以免对他人有所帮助。