Python字符串的前綴字母你都知道怎么用嗎?
2024-05-05 加入收藏
歡迎訪問(wèn)Python3分鐘系列。花3分鐘時(shí)間,學(xué)習(xí)或溫習(xí)一個(gè)Python知識(shí)點(diǎn)。今天是第225。
大家好,我是小K,今天的文章又是拖了好久的Python3分鐘系列。
今天學(xué)習(xí)、復(fù)習(xí)的知識(shí)點(diǎn)比較簡(jiǎn)單也很常用,又是一篇Python知識(shí)掃盲文。
在文章開(kāi)始前,先自測(cè)一下:你所知Python字符串前綴字母有哪些?
我只知道有4個(gè),不知道有沒(méi)有大神能補(bǔ)充學(xué)習(xí)下?
我知道的4個(gè)字符串前綴是 "u","f","r","b"。
u"麥?zhǔn)寰幊?quot;
例子:
u"麥?zhǔn)寰幊?quot;
含義:
前綴u表示該字符串是unicode編碼。
在Python2中,用在含有中文字符的字符串前,防止因?yàn)榫幋a問(wèn)題,導(dǎo)致中文出現(xiàn)亂碼。另外一般要在文件開(kāi)關(guān)標(biāo)明編碼方式采用utf8。
但Python3中,所有字符串默認(rèn)都是unicode字符串,所以這個(gè)u就被隱去了(加了也不報(bào)錯(cuò))。

f"我是{name}"
關(guān)于f前綴的詳細(xì)解釋可以看看我往期關(guān)于f-string
的發(fā)文,此處就不再啰嗦了:
>> 傳送門(mén):震驚了!f-string還有那么多隱藏功能【#162】 <<
r"\n"
**例子:**
r"\n"
含義:
在普通字符串中,反斜線是轉(zhuǎn)義符,代表一些特殊的內(nèi)容,如換行符\n
。
前綴r表示該字符串是原始字符串(Raw String),即\
不是轉(zhuǎn)義符,只是單純的一個(gè)符號(hào)。
原始字符串在處理正則表達(dá)式、文件路徑等場(chǎng)景中特別有用,字符串前加了r允許你直接包含反斜杠而不用擔(dān)心轉(zhuǎn)義問(wèn)題。
b"麥?zhǔn)寰幊?quot;
例子:
b"麥?zhǔn)寰幊?quot;
含義:
在Python中,字符串前綴 b 表示“字節(jié)字符串”(bytes)。字節(jié)字符串是一種特殊的字符串類(lèi)型,用于表示以字節(jié)為單位的數(shù)據(jù),而不是Unicode字符。
普通的字符串是Unicode字符串,它使用Unicode編碼來(lái)表示文本。
而字節(jié)字符串是以字節(jié)為單位的不可變序列,適用于處理二進(jìn)制數(shù)據(jù),如圖像、音頻文件、網(wǎng)絡(luò)傳輸中的數(shù)據(jù)等。
例如:
我們將字符串進(jìn)行編碼,編碼之后就是字節(jié)字符串:
s = "麥?zhǔn)寰幊?quot;
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)
# 麥?zhǔn)寰幊?/span>