问题描述
在处理python
代码的时候,经常可以看到字符串的前面有u
, b
, 或r
字母,如下图所示:
b'2019:12:26 07:52:16'
加上这些字母有什么意义呢?
1、字符串前加字母u
作用: u
表示将后面跟的字符串以unicode
格式进行编码
常用在含有中文的字符串前面(不仅针对中文,可以跟任何字符串)。
在
Python2
中,默认的编码格式是ascii
,因此直接使用中文会出现乱码
2、字符串前加字母r
作用: 表示非转义的原始字符串。
该字母后面一般接转义字符,有特殊含义的字符。加上r
表示一个普通字符串,去掉反斜杠的转义。
常用于正则表达式或文件绝对地址等。
如:r'\n2\n'
此处的\n
不表示换行,只表示字符串\n
,如下图
3、字符串前加字母b
作用:加字母b
表示后面接的字符串是byts
类型。 b' '
表示是一个bytes
对象。
在Python2.x
中,前缀b
没有具体意义,该写法是为了兼容Python3.x
。Python2.x
中只有字节形式的字符串。
在Python3.x
中,bytes
和str
类型可以互相转换,如下:
str
转bytes
:
str.encode('utf-8')
bytes
转str
:
bytes.decode('utf-8')
如下所示: