您好,登錄后才能下訂單哦!
這篇文章主要介紹“Python字符串中的r和u的區別是什么”,在日常操作中,相信很多人在Python字符串中的r和u的區別是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Python字符串中的r和u的區別是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
Python中字符串前面我們經常看到加r(R)或u/(U)的前綴,而這兩個符號是什么意思呢?
r意為raw,表示不包含轉義字符的原生字符串。常見的轉義字符包括下列幾種:
轉義字符 | 描述 |
---|---|
\(在行尾時) | 續航符 |
\\ | 反斜杠符號 |
' | 單引號(字符串需要為""形式) |
" | 雙引號(需要字符串用需要為''形式) |
\b | 退格(Backspace) |
\000 | 空 |
\n | 換行 |
\v | 縱向制表符 |
\t | 橫向制表符 |
下面是幾個轉義字符的演示:
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前綴的作用就是告訴解釋器,我這個字符串不包含轉義字符,比如字符串中如果包含'\n',則不將其視為換行符,而視為一個'\'字符和'n'字符來處理。如下面所示:
print("Hello,\nworld") # Hello, # world print("Hello,\nworld") # Hello,\nworld
r前綴最常見的用途是正則表達式,因為正則匹配的模式經常包含各種反斜杠等字符,我們不希望它被解析為轉移字符,因此需要加上'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']
u(U)前綴表示字符串的編碼方式為unicode。不僅包含中文在內的任意字符串都可以采用unicode編碼。一般英文字符串在任何編碼的情況下都能正常解析,所以一般不用顯式添加u。然而中文最好要說明其編碼,否則編碼轉換時就會出現亂碼(比如本來用gbk編碼但拿unicode來解碼)。解決編碼問題一勞永逸的方法是在.py的文件頭添加如下內容:
# coding: utf-8
字符串前加b
例: response = b'<h2>Hello World!</h2>' # b' ' 表示這是一個 bytes 對象
作用:
b" "前綴表示:后面字符串是bytes 類型。
用處:
網絡編程中,服務器和瀏覽器只認bytes 類型數據。
如:send 函數的參數和 recv 函數的返回值都是 bytes 類型
附:
在 Python3 中,bytes 和 str 的互相轉換方式是
str.encode('utf-8') bytes.decode('utf-8')
字符串前加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和u的區別是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。