亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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

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

FFIVE 2022-12-20 15:21:47
我正在使用 API 將 LaTeX 轉換為 PNG 格式。我正在轉換的乳膠字符串是用乳膠、.tex 編寫的,因此它們使用諸如“\n”之類的短語。我擁有的字符串示例是query = "$\displaystyle \binom n r = \dfrac{n!}{r!(n-r)!}$"然而,Python 識別\bin \binom,因此字符串被識別為有換行符,即使我想要它做的只是識別單個字符。如果可能的話,我不想修改字符串本身,因為字符串也是從 API 中獲取的。那么有沒有什么辦法可以忽略這些字符串字面量,比如'\b'或'\n'呢?
查看完整描述

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?


查看完整回答
反對 回復 2022-12-20
?
阿晨1998

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"格式。


查看完整回答
反對 回復 2022-12-20
  • 2 回答
  • 0 關注
  • 160 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號