Python字符串的前綴字母你都知道怎么用嗎?
2024-05-05 加入收藏
歡迎訪問Python3分鐘系列。花3分鐘時間,學習或溫習一個Python知識點。今天是第225。
大家好,我是小K,今天的文章又是拖了好久的Python3分鐘系列。
今天學習、復習的知識點比較簡單也很常用,又是一篇Python知識掃盲文。
在文章開始前,先自測一下:你所知Python字符串前綴字母有哪些?
我只知道有4個,不知道有沒有大神能補充學習下?
我知道的4個字符串前綴是 "u","f","r","b"。
u"麥叔編程"
例子:
u"麥叔編程"
含義:
前綴u表示該字符串是unicode編碼。
在Python2中,用在含有中文字符的字符串前,防止因為編碼問題,導致中文出現(xiàn)亂碼。另外一般要在文件開關標明編碼方式采用utf8。
但Python3中,所有字符串默認都是unicode字符串,所以這個u就被隱去了(加了也不報錯)。
f"我是{name}"
關于f前綴的詳細解釋可以看看我往期關于f-string
的發(fā)文,此處就不再啰嗦了:
>> 傳送門:震驚了!f-string還有那么多隱藏功能【#162】 <<
r"\n"
**例子:**
r"\n"
含義:
在普通字符串中,反斜線是轉義符,代表一些特殊的內容,如換行符\n
。
前綴r表示該字符串是原始字符串(Raw String),即\
不是轉義符,只是單純的一個符號。
原始字符串在處理正則表達式、文件路徑等場景中特別有用,字符串前加了r允許你直接包含反斜杠而不用擔心轉義問題。
b"麥叔編程"
例子:
b"麥叔編程"
含義:
在Python中,字符串前綴 b 表示“字節(jié)字符串”(bytes)。字節(jié)字符串是一種特殊的字符串類型,用于表示以字節(jié)為單位的數(shù)據(jù),而不是Unicode字符。
普通的字符串是Unicode字符串,它使用Unicode編碼來表示文本。
而字節(jié)字符串是以字節(jié)為單位的不可變序列,適用于處理二進制數(shù)據(jù),如圖像、音頻文件、網絡傳輸中的數(shù)據(jù)等。
例如:
我們將字符串進行編碼,編碼之后就是字節(jié)字符串:
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)
# 麥叔編程