我正在使用API将LaTeX转换为PNG格式。我正在转换的latex字符串是用latex、.tex编写的,因此它们使用诸如“\n”之类的短语
我有一个字符串的例子是
query = "$\displaystyle \binom n r = \dfrac{n!}{r!(n-r)!}$"
但是,Python识别\binom
中的\b
,因此字符串被识别为具有换行符,尽管我只想让它识别单个字符
如果可能的话,我不想修改字符串本身,因为字符串也是从API获取的。那么,是否有任何方法可以忽略这些字符串文字,例如“\b”或“\n”
Tags:
使用
r"$\displaystyle \binom n r = \dfrac{n!}{r!(n-r)!}$"
。这称为原始字符串。您可以阅读更多关于它的信息here通常,可以使用以下格式的原始字符串:
正常字符串:
输出:
原始字符串:
输出:
为了清楚起见,我更新了我的答案
如果字符串直接来自API,那么它应该已经是原始格式(或者您可以访问的最原始格式),例如
r"$\displaystyle \binom n r = \dfrac{n!}{r!(n-r)!}$"
。因此,Python不会使用转义字符,也不会出现问题要回答关于原始字符串的另一个问题-要在Python中将字符串打印为原始字符串,请尝试
repr
函数,该函数返回给定对象的可打印表示字符串以下是输出:
'$\\displaystyle \x08inom n r = \\dfrac{n!}{r!(n-r)!}$'
注意,在上面的
query
的真实原始数据中,\b
字符在技术上仍然存储为\b
编码(或\x08
),而不是作为两个单独的字符。你可能会问,为什么\d
没有存储为编码?因为\d
不是有效的编码转义序列,所以它被忽略,Python将\
视为一个字符。(啊……默默地忽略解析错误,这不是我们喜欢Python的原因吗?)那么这个例子呢
看起来不错,但是等等,Python打印
'$\\displaystyle \\binom n r = \\dfrac{n!}{r!(n-r)!}$'
为什么是
\\
?好的,repr
函数返回给定对象的可打印表示字符串,因此为了避免任何混淆,\
字符正确地转义为\
,从而创建\\
所有这些都回到了你的问题——如果字符串的值直接来自API调用,那么字符串数据应该已经从二进制编码转换而来,像转义序列这样的事情不应该成为问题(因为原始数据中没有字符串)。但是在您提供的示例中,您以
query = "st\ring"
格式声明了一个字符串,不幸的是,这并不等同于从API检索字符串,显而易见的解决方案是使用query = r"st\ring"
格式相关问题 更多 >
编程相关推荐