淺析python字符串前加r、f、u、l 的區(qū)別
先給大家介紹下Python 字符串前面加u,r,b,f的含義(字符串前綴)
1、字符串前加 u
例:u"我是含有中文字符組成的字符串。"
作用:
后面字符串以 Unicode 格式 進(jìn)行編碼,一般用在中文字符串前面,防止因?yàn)樵创a儲(chǔ)存格式問(wèn)題,導(dǎo)致再次使用時(shí)出現(xiàn)亂碼。
2、字符串前加 r
例:r"\n\n\n\n” # 表示一個(gè)普通生字符串 \n\n\n\n,而不表示換行了。
作用:
去掉反斜杠的轉(zhuǎn)移機(jī)制。
(特殊字符:即那些,反斜杠加上對(duì)應(yīng)字母,表示對(duì)應(yīng)的特殊含義的,比如最常見(jiàn)的”\n”表示換行,”\t”表示Tab等。 )
應(yīng)用:
常用于正則表達(dá)式,對(duì)應(yīng)著re模塊。
3、字符串前加 b
例: response = b'<h1>Hello World!</h1>' # b' ' 表示這是一個(gè) bytes 對(duì)象
作用:
b" "前綴表示:后面字符串是bytes 類(lèi)型。
用處:
網(wǎng)絡(luò)編程中,服務(wù)器和瀏覽器只認(rèn)bytes 類(lèi)型數(shù)據(jù)。
如:send 函數(shù)的參數(shù)和 recv 函數(shù)的返回值都是 bytes 類(lèi)型
附:
在 Python3 中,bytes 和 str 的互相轉(zhuǎn)換方式是
str.encode('utf-8')
bytes.decode('utf-8')
4、字符串前加 f
import time t0 = time.time() time.sleep(1) name = 'processing'
# 以 f開(kāi)頭表示在字符串內(nèi)支持大括號(hào)內(nèi)的python 表達(dá)式
print(f'{name} done in {time.time() - t0:.2f} s')
輸出:
processing done in 1.00 s
下面介紹下python字符串前加r、f、u、l 的區(qū)別
f-strings 是指以 f 或 F 開(kāi)頭的字符串,其中以 {} 包含的表達(dá)式會(huì)進(jìn)行值替換。(目前支持python3.6版本)
下面看下 f-strings 的使用方法
基本使用(作用:替換值)
>>>name = 'xiaoming'
>>> age = 18
>>> f"hi, {name}, are you {age}"
#結(jié)果如下
'hi, xiaoming, are you 18'
>>> F"hi, {name}, are you {age}"
'hi, xiaoming, are you 18'
在字符串前加r可防止字符串轉(zhuǎn)義
作用:沒(méi)有轉(zhuǎn)義特殊或不能打印的字符。
>>> s='abc\nabc' >>> s 'abc\nabc' >>> print s abc abc >>> s=r'abc\nabc' >>> s 'abc\\nabc' >>> print s abc\nabc
u/U:表示unicode字符串
不是僅僅是針對(duì)中文, 可以針對(duì)任何的字符串,代表是對(duì)字符串進(jìn)行unicode編碼。
一般英文字符在使用各種編碼下, 基本都可以正常解析, 所以一般不帶u;但是中文, 必須表明所需編碼, 否則一旦編碼轉(zhuǎn)換就會(huì)出現(xiàn)亂碼。 建議所有編碼方式采用utf8
字符串前加 “l(fā)”
表示寬字符,unicode字符( unicode字符集是兩個(gè)字節(jié)組成的。L告示編譯器使用兩個(gè)字節(jié)的 unicode 字符集) 如 L"我的字符串" 表示將ANSI字符串轉(zhuǎn)換成unicode的字符串,就是每個(gè)字符占用兩個(gè)字節(jié)。
不加時(shí)占用字節(jié)
strlen("asd") = 3;
加之后占用字節(jié)
strlen(L"asd") = 6;
到此這篇關(guān)于淺析python字符串前加r、f、u、l 的區(qū)別的文章就介紹到這了,更多相關(guān)python字符串r、f、u、l內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Ubuntu手動(dòng)編譯源碼安裝Python的詳細(xì)過(guò)程
這篇文章主要介紹了Ubuntu手動(dòng)編譯源碼安裝Python的詳細(xì)過(guò)程,在python官網(wǎng)找到所需版本的python安裝包,下載到Ubuntu系統(tǒng)中,需要的朋友可以參考下2006-08-08
Django學(xué)習(xí)筆記之為Model添加Action
這篇文章主要介紹了Django給admin添加Action,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-04-04
淺談Pandas Series 和 Numpy array中的相同點(diǎn)
今天小編就為大家分享一篇淺談Pandas Series 和 Numpy array中的相同點(diǎn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06
AMP?Tensor?Cores節(jié)省內(nèi)存PyTorch模型詳解
這篇文章主要為大家介紹了AMP?Tensor?Cores節(jié)省內(nèi)存PyTorch模型詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10
pytorch繪制并顯示loss曲線(xiàn)和acc曲線(xiàn),LeNet5識(shí)別圖像準(zhǔn)確率
今天小編就為大家分享一篇pytorch繪制并顯示loss曲線(xiàn)和acc曲線(xiàn),LeNet5識(shí)別圖像準(zhǔn)確率,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01
簡(jiǎn)單了解Java Netty Reactor三種線(xiàn)程模型
這篇文章主要介紹了簡(jiǎn)單了解Java Netty Reactor三種線(xiàn)程模型,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
python 實(shí)現(xiàn)format進(jìn)制轉(zhuǎn)換與刪除進(jìn)制前綴
這篇文章主要介紹了python 實(shí)現(xiàn)format進(jìn)制轉(zhuǎn)換與刪除進(jìn)制前綴的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
Python中使用urllib2模塊編寫(xiě)爬蟲(chóng)的簡(jiǎn)單上手示例
這篇文章主要介紹了Python中使用urllib2模塊編寫(xiě)爬蟲(chóng)的簡(jiǎn)單上手示例,文中還介紹到了相關(guān)異常處理功能的添加,需要的朋友可以參考下2016-01-01

