Python中字串前面我們經常看到加r(R)或u/(U)的前綴,而這兩個符號是什么意思呢?
1.r(R)
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']
1.u(U)
u(U)前綴表示字串的編碼方式為unicode,不僅包含中文在內的任意字串都可以采用unicode編碼,一般英文字串在任何編碼的情況下都能正常決議,所以一般不用顯式添加u,然而中文最好要說明其編碼,否則編碼轉換時就會出現亂碼(比如本來用gbk編碼但拿unicode來解碼),解決編碼問題一勞永逸的方法是在.py的檔案頭添加如下內容:
# coding: utf-8
參考文獻
- [1] https://www.python.org/
- [2] Martelli A, Ravenscroft A, Ascher D. Python cookbook[M]. " O'Reilly Media, Inc.", 2005.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/379106.html
標籤:其他
