Python 中比较两个相同的字符串,为什么说不相等?

已打印过字符串长度,都是15... 已打印过字符串长度,都是 15 展开
 我来答
认真答却总被删BAIDU我凭什么同情你
2023-05-16 · TA获得超过444个赞
知道小有建树答主
回答量:1800
采纳率:79%
帮助的人:101万
展开全部
尽管这两个字符串在视觉上看起来相同,但它们可能在某些隐藏的细节上存在差异。以下是几个可能的原因:

1. 不可见字符: 有可能存在一些不可见的字符,如空格、制表符或其他特殊字符。你可以使用 `strip()` 函数来删除字符串两端的空白字符,或者使用 `replace()` 函数将所有的空白字符替换掉。

2. 编码问题: Python 中的字符串是 Unicode 字符串,如果你的两个字符串来自不同的源或者经过了不同的处理,它们可能使用了不同的字符编码,看起来相同的字符实际上可能是不同的 Unicode 码点。你可以试着打印每个字符的 Unicode 码点来查看它们是否真的相同。

3. 字体或排版问题: 有些字符在某些字体或排版设置下看起来相同,但实际上是不同的字符。例如,英文的引号和中文的引号在某些字体下看起来很相似。

你可以尝试下面的代码来进一步调试这个问题:
print([ord(c) for c in template])
print([ord(c) for c in right_template])

这段代码将打印出两个字符串中每个字符的 Unicode 码点,你可以比较这两个输出来看看是否有差异。

另外,记得在你的代码中使用 `.strip()` 方法来去掉可能存在的不可见字符,例如:

template = template.strip()
right_template = right_template.strip()
assert template == right_template
更多追问追答
追问

你好,我已添加你提到的两段代码,确认两个字符串相同,但是仍然存在该问题

追答
从你提供的代码输出结果来看,`模版`和`模板`并不是完全相同的字符。 

你可以看到`模版`和`模板`的 Unicode 编码分别是 27169 和 26495,这两个字符虽然在视觉上非常相似,但在计算机看来,它们是完全不同的字符。

解决这个问题的最简单的方法就是确保你的代码中使用的字符和你的 Excel 文件中的字符完全一致。你可以直接从你的 Excel 文件中复制这段文字,然后粘贴到你的 Python 代码中,来确保字符的一致性。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式