Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python3-两个相同的字符串不匹配==_Python_String_Python 3.x_Equals - Fatal编程技术网

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

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并理解它们不匹配的原因 经过测

我从excel电子表格中提取了一个
字符串
,称之为
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])