Python字符串的前綴字母你都知道怎麼用嗎?

2024年2月6日 30点热度 0人点赞

今天學習、復習的知識點比較簡單也很常用,又是一篇Python知識掃盲文。

在文章開始前,先自測一下:你所知Python字符串前綴字母有哪些?

我隻知道有4個,不知道有沒有大神能補充學習下?

我知道的4個字符串前綴是 "u","f","r","b"。

u"麥叔編程"

例子:

u"麥叔編程"

含義:

前綴u表示該字符串是unicode編碼

在Python2中,用在含有中文字符的字符串前,防止因為編碼問題,導致中文出現亂碼。另外一般要在文件開關標明編碼方式采用utf8。

但Python3中,所有字符串默認都是unicode字符串,所以這個u就被隱去了(加了也不報錯)。

f"我是{name}"

關於f前綴的詳細解釋可以看看我往期關於f-string的發文,此處就不再囉嗦了:

>> 傳送門:震驚了!f-string還有那麼多隱藏功能【#162】 <<

r"\n"

**例子:**

r"\n"

含義:

在普通字符串中,反斜線是轉義符,代表一些特殊的內容,如換行符\n

前綴r表示該字符串是原始字符串(Raw String),即\不是轉義符,隻是單純的一個符號。

原始字符串在處理正則表達式文件路徑等場景中特別有用,字符串前加了r允許你直接包含反斜杠而不用擔心轉義問題。

b"麥叔編程"

例子:

b"麥叔編程"

含義:

在Python中,字符串前綴 b 表示“字節字符串”(bytes)。字節字符串是一種特殊的字符串類型,用於表示以字節為單位的數據,而不是Unicode字符

普通的字符串是Unicode字符串,它使用Unicode編碼來表示文本。

而字節字符串是以字節為單位的不可變序列,適用於處理二進制數據,如圖像、音頻文件、網絡傳輸中的數據等。

例如:

我們將字符串進行編碼,編碼之後就是字節字符串

s = "麥叔編程"
enc_s = s.encode("utf-8") # 編碼
print(enc_s)
# b'\xe9\xba\xa6\xe5\x8f\x94\xe7\xbc\x96\xe7\xa8\x8b'
dec_s = enc_s.decode("utf-8") #解碼
print(dec_s)
# 麥叔編程

來源:麥叔編程