2 回答
![?](http://img1.sycdn.imooc.com/5458689e000115c602200220-100-100.jpg)
TA贡献1799条经验 获得超8个赞
使用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?
![?](http://img1.sycdn.imooc.com/545861f00001be3402200220-100-100.jpg)
TA贡献2037条经验 获得超6个赞
为了清楚起见,我已经更新了我的答案。
如果字符串直接来自 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"
格式。
添加回答
举报