今天學習、復習的知識點比較簡單也很常用,又是一篇Python知識掃盲文。
在文章開始前,先自測一下:你所知Python字符串前綴字母有哪些?
我隻知道有4個,不知道有沒有大神能補充學習下?
我知道的4個字符串前綴是 "u","f","r","b"。
u"麥叔編程"
例子:
u"麥叔編程"
含義:
前綴u表示該字符串是unicode編碼。
在Python2中,用在含有中文字符的字符串前,防止因為編碼問題,導致中文出現亂碼。另外一般要在文件開關標明編碼方式采用utf8。
但Python3中,所有字符串默認都是unicode字符串,所以這個u就被隱去了(加了也不報錯)。
![](https://news.xinpengboligang.com/upload/keji/950aa2ec47c6ae2be6432dd79b924f42.jpeg)
f"我是{name}"
關於f前綴的詳細解釋可以看看我往期關於f-string的發文,此處就不再囉嗦了:
>> 傳送門:震驚了!f-string還有那麼多隱藏功能【#162】 <<
![](https://news.xinpengboligang.com/upload/keji/f098ceb867c4fc3a3fc51792d98d17e8.jpeg)
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)
# 麥叔編程
![](https://news.xinpengboligang.com/upload/keji/438135ccc14c1923cd770826c5da6a4c.jpeg)
來源:麥叔編程