我从excel电子表格中提取string
,称之为x
。使用print
语句时,会打印单词PLANT
print(x)
PLANT
当我执行以下操作时:
if x == 'PLANT':
print('YES')
else:
print('NO')
它始终打印NO。
我认为这是由==
检查比表面字符串更基本的东西引起的。我尝试使用ascii命令进一步调查,但这也没有显示任何差异。
ascii(x)
是否还有其他命令我可以尝试将x
与PLANT
区分开来并理解它们不匹配的原因?
测试的东西
repr(x)
'PLANT'
type(x)
<class 'str'>
ascii(x)
'PLANT'
发现差异:
id(x)
30805824
id('PLANT')
28515008
答案 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所建议。
我意识到这似乎不适用于原始海报,但是由于这解决了我面临的一个非常相似的问题,因此我想在这里发表,以免对他人有所帮助。