如何阻止 Python 识别字符串文字,例如“\n”或“\b”?

我正在使用 API 将 LaTeX 转换为 PNG 格式。我正在转换的乳胶字符串是用乳胶、.tex 编写的,因此它们使用诸如“\n”之类的短语。

我拥有的字符串示例是

query = "$\displaystyle \binom n r = \dfrac{n!}{r!(n-r)!}$"

然而,Python 识别\bin \binom,因此字符串被识别为有换行符,即使我想要它做的只是识别单个字符。

如果可能的话,我不想修改字符串本身,因为字符串也是从 API 中获取的。那么有没有什么办法可以忽略这些字符串字面量,比如'\b'或'\n'呢?


FFIVE
浏览 85回答 2
2回答

守着星空守着你

使用r"$\displaystyle \binom n r = \dfrac{n!}{r!(n-r)!}$"。这称为原始字符串。你可以在这里阅读更多相关信息通常,您可以使用以下格式的原始字符串:普通字符串:'Hi\nHow are you?'输出:   Hi    How are you?原始字符串:r'Hi\nHow are you?'输出:   Hi\nHow are you?

阿晨1998

为了清楚起见,我已经更新了我的答案。如果字符串直接来自 API,那么它应该已经是原始格式(或者您可以访问的最原始格式),例如r"$\displaystyle \binom n r = \dfrac{n!}{r!(n-r)!}$". 因此,Python 不会假定转义字符,也不应该有问题。要回答有关原始字符串的其他问题 - 要在 Python 中将字符串打印为原始字符串,请尝试该repr函数,该函数返回给定对象的可打印表示字符串。query = "$\displaystyle \binom n r = \dfrac{n!}{r!(n-r)!}$" print(repr(query))这是输出: '$\\displaystyle \x08inom n r = \\dfrac{n!}{r!(n-r)!}$'请注意,在上面的真实原始数据中query,\b字符在技术上仍存储为\b编码(或\x08),而不是两个单独的字符。您可能会问,为什么不\d存储为编码?因为\d不是有效的编码转义序列,所以它被忽略并且 Python 将其\视为字符。(啊……默默无视解析错误,这不就是我们热爱 Python 的原因吗?)那么这个例子呢?query = r"$\displaystyle \binom n r = \dfrac{n!}{r!(n-r)!}$" print(repr(query))看起来不错,但是等等,Python 会打印'$\\displaystyle \\binom n r = \\dfrac{n!}{r!(n-r)!}$'.为什么\\?好吧,该repr函数返回给定对象的可打印表示字符串,因此为避免混淆,该\字符已正确转义为\,创建\\.所有这一切都回到了你的问题 - 如果字符串的值直接来自 API 调用,那么字符串数据应该已经从二进制编码转换而来,转义序列之类的东西应该不是问题(因为它们不在原始数据中)。但是在您提供的示例中,您以一种query = "st\ring"格式声明了一个字符串,不幸的是,这不等同于从 API 中检索一个字符串,显而易见的解决方案是使用该query = r"st\ring"格式。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python