1. u前缀
字符串默认创建即以Unicode编码存储,可以存储中文。
string = 'a' 等效于 string = u'a'
加了u前缀和没有加前缀的效果相同
2个字节表示u'a' 即 u'u0061' 实际内存中为 [0000 0000] [0110 0001]
即:
print(u'\u0061')
#> a
print(u'\u0062')
#> b
作用
在与工程默认编码格式不同的时候,使用此方法来避免编码的问题
2. b前缀
例:
response = b'<h1>Hello World!</h1>'
# b' ' 表示这是一个 bytes 对象
字符串存储为Ascll码,无法存储中文。
每个字符由1个字节表示(8位)
- b'a' 即 b'x61' 实际内存中为 [0110 0001]
作用:
网络编程中,服务器和浏览器只认bytes 类型数据。
如:send 函数的参数和 recv 函数的返回值都是 bytes 类型
附:
在 Python3 中,bytes 和 str 的互相转换方式是
str.encode(‘utf-8’)
bytes.decode(‘utf-8’)
3. r前缀
与上述两种不是一样的东西了。
r前缀主要解决的是 转义字符,特殊字符 的问题,其中所有字符均视为普通字符。
注意:b'A\tA'
打印结果自带一个b'',表示该字符串是一个字节数组。
作用:
常用于正则表达式,对应着re模块。