2 回答

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?

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"
格式。
添加回答
舉報