溫馨提示×

溫馨提示×

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

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

Python字符串中的r和u的區(qū)別是什么

發(fā)布時間:2021-12-13 11:56:33 來源:億速云 閱讀:253 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹“Python字符串中的r和u的區(qū)別是什么”,在日常操作中,相信很多人在Python字符串中的r和u的區(qū)別是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Python字符串中的r和u的區(qū)別是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

Python中字符串前面我們經(jīng)??吹郊觬(R)或u/(U)的前綴,而這兩個符號是什么意思呢?

1.r(R)

r意為raw,表示不包含轉(zhuǎn)義字符的原生字符串。常見的轉(zhuǎn)義字符包括下列幾種:

轉(zhuǎn)義字符描述
\(在行尾時)續(xù)航符
\\反斜杠符號
'單引號(字符串需要為""形式)
"雙引號(需要字符串用需要為''形式)
\b退格(Backspace)
\000
\n換行
\v縱向制表符
\t橫向制表符

下面是幾個轉(zhuǎn)義字符的演示:

print("Hello\
,world")
# Hello,world
print("Hello\\,world")
# Hello\,world
print("Hello',world")
# Hello',world
print('Hello",world')
# Hello",world
print("Hello\b,world")
# Hell,world
print("Hello\000,world")
#Hello,world
print("Hello\n,world")
# Hello
# ,world
print("Hello\v,world")
# Hello
#      ,world
print("Hello\t,world")
# Hello   ,world
print("Hello\020,world")

r前綴的作用就是告訴解釋器,我這個字符串不包含轉(zhuǎn)義字符,比如字符串中如果包含'\n',則不將其視為換行符,而視為一個'\'字符和'n'字符來處理。如下面所示:

print("Hello,\nworld")
# Hello,
# world
print("Hello,\nworld")
# Hello,\nworld

r前綴最常見的用途是正則表達式,因為正則匹配的模式經(jīng)常包含各種反斜杠等字符,我們不希望它被解析為轉(zhuǎn)移字符,因此需要加上'r'。

import re
str_pat= re.compile(r'\d+/\d+/\d+')
text = 'Today is 12/10/2021, yesterday is 12/11/2021'
res = str_pat.findall(text)
print(res)
['12/10/2021', '12/11/2021']

2.u(U)

u(U)前綴表示字符串的編碼方式為unicode。不僅包含中文在內(nèi)的任意字符串都可以采用unicode編碼。一般英文字符串在任何編碼的情況下都能正常解析,所以一般不用顯式添加u。然而中文最好要說明其編碼,否則編碼轉(zhuǎn)換時就會出現(xiàn)亂碼(比如本來用gbk編碼但拿unicode來解碼)。解決編碼問題一勞永逸的方法是在.py的文件頭添加如下內(nèi)容:

# coding: utf-8

補充

字符串前加b

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

作用:

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

用處:

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

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

附:

在 Python3 中,bytes 和 str 的互相轉(zhuǎn)換方式是

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

字符串前加f

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

輸出:

processing done in 1.00 s

到此,關(guān)于“Python字符串中的r和u的區(qū)別是什么”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

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

AI