打印显示相同的字符串,但如果==失败

2024-10-06 11:29:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图比较两个字符串,但==运算符失败。如果你打印它们,它们似乎具有相同的值。即使类型是相同的:类str,print(repr())的输出也是相同的,.strip()也没有帮助,与in运算符进行比较也失败

字符串是“Neues Textdokument.txt-Edito”和编辑器的windows窗口名

多亏了@Random Davis的建议,里面似乎有一个西里尔字母,看起来和拉丁字母一模一样。但如果您用以下内容检查字符串a和b: 打印([ord(c)代表a中的c]) 打印([ord(c)代表b中的c]) 它显示的是十进制字母的unicode数字。它们在e和M中分开


Tags: 字符串intxt类型字母运算符代表strip
1条回答
网友
1楼 · 发布于 2024-10-06 11:29:25

结果是字符串看起来是一样的,但是在实际数据中有一些意想不到的unicode西里尔字符,看起来和ASCII字符一样。因此,解决方案是运行以下代码将比较字符串与实际字符串进行比较:

print([ord(c) for c in a])
print([ord(c) for c in b])

这表明在实际数据中,存在西里尔字母“М”和“Б”,这导致字符串比较返回False

相关问题 更多 >