淺析python字符串前加r、f、u、l 的區別

先給大傢介紹下Python 字符串前面加u,r,b,f的含義(字符串前綴)

1、字符串前加 u

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

作用:

後面字符串以 Unicode 格式 進行編碼,一般用在中文字符串前面,防止因為源碼儲存格式問題,導致再次使用時出現亂碼。

2、字符串前加 r

例:r”\n\n\n\n”  # 表示一個普通生字符串 \n\n\n\n,而不表示換行瞭。

作用:

去掉反斜杠的轉移機制。

(特殊字符:即那些,反斜杠加上對應字母,表示對應的特殊含義的,比如最常見的”\n”表示換行,”\t”表示Tab等。 )

應用:

常用於正則表達式,對應著re模塊。

3、字符串前加 b

例: response = b'<h1>Hello World!</h1>’     # b’ ‘ 表示這是一個 bytes 對象

作用:

b” “前綴表示:後面字符串是bytes 類型。

用處:

網絡編程中,服務器和瀏覽器隻認bytes 類型數據。

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

附:

在 Python3 中,bytes 和 str 的互相轉換方式是

str.encode('utf-8')
bytes.decode('utf-8')

4、字符串前加 f

import time
t0 = time.time()
time.sleep(1)
name = 'processing'
# 以 f開頭表示在字符串內支持大括號內的python 表達式
print(f'{name} done in {time.time() - t0:.2f} s')

輸出:

processing done in 1.00 s

下面介紹下python字符串前加r、f、u、l 的區別

f-strings 是指以 f 或 F 開頭的字符串,其中以 {} 包含的表達式會進行值替換。(目前支持python3.6版本)

下面看下 f-strings 的使用方法

基本使用(作用:替換值)

>>>name = 'xiaoming'
>>> age = 18
>>> f"hi, {name}, are you {age}"
#結果如下
'hi, xiaoming, are you 18'
>>> F"hi, {name}, are you {age}"
'hi, xiaoming, are you 18'

在字符串前加r可防止字符串轉義

作用:沒有轉義特殊或不能打印的字符。

>>> s='abc\nabc'
>>> s
'abc\nabc'
>>> print s
abc
abc
>>> s=r'abc\nabc'
>>> s
'abc\\nabc'
>>> print s
abc\nabc

u/U:表示unicode字符串

不是僅僅是針對中文, 可以針對任何的字符串,代表是對字符串進行unicode編碼。
一般英文字符在使用各種編碼下, 基本都可以正常解析, 所以一般不帶u;但是中文, 必須表明所需編碼, 否則一旦編碼轉換就會出現亂碼。 建議所有編碼方式采用utf8

字符串前加 “l”

表示寬字符,unicode字符( unicode字符集是兩個字節組成的。L告示編譯器使用兩個字節的 unicode 字符集) 如 L”我的字符串” 表示將ANSI字符串轉換成unicode的字符串,就是每個字符占用兩個字節。

不加時占用字節
strlen("asd") = 3; 
 
 加之後占用字節
strlen(L"asd") = 6;

到此這篇關於淺析python字符串前加r、f、u、l 的區別的文章就介紹到這瞭,更多相關python字符串r、f、u、l內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: