【发布时间】:2021-02-11 16:26:52
【问题描述】:
我正在尝试比较 2 个字符串,但 == 运算符失败。如果您打印它们,它们似乎具有相同的值。即使类型相同:str 类,print(repr()) 的输出相同,.strip() 也无济于事,与 in 运算符比较也失败。
字符串是“Neues Textdokument.txt - Edito”和编辑器的窗口名称
感谢@Random Davis 的建议,那里似乎是一个西里尔字母,看起来与拉丁字母一模一样。但是如果您检查字符串 a 和 b : print([ord(c) for c in a]) print([ord(c) for c in b]) 它以十进制显示字母的 unicode 编号。它们分别位于 e 和 M
【问题讨论】:
-
也许尝试一种显示字符串之间确切差异的方法?喜欢这个:stackoverflow.com/questions/17904097/…
-
您也可以尝试使用
print([ord(c) for c in a])和print([ord(c) for c in b])来查看字符串a和b之间的确切区别。 -
感谢这个带有 difflib.ndiff() 的建议,它显示了如下变化: - m- е+ m+ e 但这更令人困惑
-
print([ord(c) for c in a]) 和 print([ord(c) for c in b]) 显示从 77 到 1052 和 1077 到 101 的变化
-
您应该将这些命令的完整输出放在您的帖子中,以便其他人可以帮助调试。
- m- е+ m+ e部分让我觉得你只是在某个地方打错了。
标签: python python-3.x string comparison hwnd