1、字符串前r
表示非转义的原始字符串,Python中反斜杠加上对应字母,表示对应的特殊含义的,比如,”\n”表示换行,”\t”表示Tab等。而以r
开头,则后面的字符,即是普通的字符,如\n
就直接输出\n
,不代表换行,实际输出原始字符串。一般常用于正则表达式,也就是re
模块。
例如,
import re
path1 = r"F:\cjavapy\url.txt"
path2 = "F:\\cjavapy\\url.txt"
newLine1 = r"cjavapy\r\nurl"
newLine2 = "cjavapy\r\nurl"
print("path1={0},path2={1},newLine1={2},newLine2={3}".format(path1,path2,newLine1,newLine2))
regStr = r"\d+"
m = re.search(regStr,"cjavapy123456Python")
print(m)
2、字符串前b
表示bytes
,Python3.x里默认的str
是Python2.x中的unicode, Python2.x里默认的的str
是bytes
, b”“前缀代表的就是bytes
Python2.x里, b
前缀无具体意义,仅是兼容Python3.x的这种写法。
例如,
import re
path1 = br"F:\cjavapy\url.txt"
print("path1={0},type={1}".format(path1,type(path1)))
3、字符串前u
表示unicode字符串,对于任何的字符串,代表是对字符串进行unicode编码。英文通常在各种编码下能正常解析,但中文必须表明所需编码,否则就会出现乱码的情况,Python2中需要字符串前加u
指定,Python3中默认字符串就是unicode编码。
例如,
import re
path1 = u"F:\\cjavapy\\url.txt"
print("path1={0},type={1}".format(path1,type(path1)))
4、字符串前f
表示格式化操作,相比于format()
更方便使用,需要注意的是f
是Python3.6及之后才可以使用,之前版本是不支持的。
例如,
import time
t0 = time.time()
time.sleep(1)
url = 'https://www.cjavapy.com'
print(f'{url} = {time.time() - t0:.2f} s')