Python3-两个相同的字符串不匹配==
我从excel电子表格中提取了一个Python3-两个相同的字符串不匹配==,python,string,python-3.x,equals,Python,String,Python 3.x,Equals,我从excel电子表格中提取了一个字符串,称之为x。使用print语句时,它会打印单词PLANT print(x) PLANT 当我执行以下操作时: if x == 'PLANT': print('YES') else: print('NO') 它总是打印不 我相信这是由==检查一些比表面字符串更基本的东西造成的。我尝试使用ascii命令进行进一步的研究,但这也没有显示任何差异 ascii(x) 是否有任何其他命令我可以尝试区分x和PLANT并理解它们不匹配的原因 经过测
字符串
,称之为x
。使用print
语句时,它会打印单词PLANT
print(x)
PLANT
当我执行以下操作时:
if x == 'PLANT':
print('YES')
else:
print('NO')
它总是打印不
我相信这是由==
检查一些比表面字符串更基本的东西造成的。我尝试使用ascii命令进行进一步的研究,但这也没有显示任何差异
ascii(x)
是否有任何其他命令我可以尝试区分x
和PLANT
并理解它们不匹配的原因
经过测试的东西
repr(x)
'PLANT'
type(x)
<class 'str'>
ascii(x)
'PLANT'
字母周围可能有空格。因此,最好在检查条件之前剥离空格字符
if x.strip() == 'PLANT':
试试这个
x.strip() == 'PLANT':
我遇到了同样的问题,发现我从文件中读取的值以NUL结尾('\0'),而我所比较的python字符串则不是 不只是调用strip来删除空格,而是使用您试图删除的特定字符来调用strip
if x.strip('\0') == "PLANT":
print("match")
我发现我的问题是使用
print([ord(i) for i in x])
正如阿维纳什·拉吉所建议的那样
我意识到这似乎对原始海报不起作用,但由于这解决了我面临的一个非常类似的问题,我想在这里发布,以防它对其他人有帮助 你看过《代码》杂志吗?它是如何“从excel电子表格中提取”的;你确定它是一个字符串而不是一些特殊的单元格表示形式吗?如果x.strip()='PLANT':尝试
len(x)
并检查输出是否为5
或notrepr(x)返回'PLANT',repr('PLANT')返回'PLANT'x。strip()无效[ord(i)for i in x]
?[ord(i)for i in x]返回的输出是什么[80,76,65,78,84]。[ord(i)for i in'PLANT]返回[80,76,65,78,84]哦,我无法重现你的问题。
print([ord(i) for i in x])