u/U:表示unicode字符串
不是僅僅是針對(duì)中文, 可以針對(duì)任何的字符串,代表是對(duì)字符串進(jìn)行unicode編碼。
一般英文字符在使用各種編碼下, 基本都可以正常解析, 所以一般不帶u;但是中文, 必須表明所需編碼, 否則一旦編碼轉(zhuǎn)換就會(huì)出現(xiàn)亂碼。
建議所有編碼方式采用utf8
r/R:非轉(zhuǎn)義的原始字符串
與普通字符相比,其他相對(duì)特殊的字符,其中可能包含轉(zhuǎn)義字符,即那些,反斜杠加上對(duì)應(yīng)字母,表示對(duì)應(yīng)的特殊含義的,比如最常見的”\n”表示換行,”\t”表示Tab等。而如果是以r開頭,那么說(shuō)明后面的字符,都是普通的字符了,即如果是“\n”那么表示一個(gè)反斜杠字符,一個(gè)字母n,而不是表示換行了。
以r開頭的字符,常用于正則表達(dá)式,對(duì)應(yīng)著re模塊。
b:bytes
python3.x里默認(rèn)的str是(py2.x里的)unicode, bytes是(py2.x)的str, b”“前綴代表的就是bytes
python2.x里, b前綴沒什么具體意義, 只是為了兼容python3.x的這種寫法