溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python中字符串前加r、f、u、l 的區(qū)別是什么

發(fā)布時(shí)間:2021-01-25 15:55:01 來源:億速云 閱讀:446 作者:Leah 欄目:開發(fā)技術(shù)

python中字符串前加r、f、u、l 的區(qū)別是什么?相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

1、字符串前加 u

例:u"我是含有中文字符組成的字符串。"

作用:

后面字符串以 Unicode 格式 進(jìn)行編碼,一般用在中文字符串前面,防止因?yàn)樵创a儲(chǔ)存格式問題,導(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)的特殊含義的,比如最常見的”\n”表示換行,”\t”表示Tab等。 )

應(yīng)用:

常用于正則表達(dá)式,對(duì)應(yīng)著re模塊。

3、字符串前加 b

例: response = b'<h2>Hello World!</h2>'     # b' ' 表示這是一個(gè) bytes 對(duì)象

作用:

b" "前綴表示:后面字符串是bytes 類型。

用處:

網(wǎng)絡(luò)編程中,服務(wù)器和瀏覽器只認(rèn)bytes 類型數(shù)據(jù)。

如:send 函數(shù)的參數(shù)和 recv 函數(shù)的返回值都是 bytes 類型

附:

在 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開頭表示在字符串內(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 開頭的字符串,其中以 {} 包含的表達(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)義

作用:沒有轉(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;

看完上述內(nèi)容,你們掌握python中字符串前加r、f、u、l 的區(qū)別是什么的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI