定义
- string是文本序列
- bytes是字节序列
区别
- 文本是有编码的,例如:utf8,gbk,GB18030等
- 字节没有编码
- 文本的编码指的是字符如何使用字节来表示
编码
- 单字节编码,例如:ascii
- 多字节编码,例如:utf8
编码是信息从一种形式或格式转换为另一种形式的过程,也称为计算机编码语言的代码,简称编码。python3中,字符串默认使用utf8编码。
bytes:字符串经过编码后的数据类型。
用utf8编码表示的字节如下:
>>> s = '人人都会有迷茫不知所措的时候'
>>> type(s)
<class 'str'>
>>> s.encode()
b'\xe4\xba\xba\xe4\xba\xba\xe9\x83\xbd\xe4\xbc\x9a\xe6\x9c\x89\xe8\xbf\xb7\xe8\x8c\xab\xe4\xb8\x8d\xe7\x9f\xa5\xe6\x89\x80\xe6\x8e\xaa\xe7\x9a\x84\xe6\x97\xb6\xe5\x80\x
99'
每个字符有3个字节(3个16进制数组成)
‘人’的utf8字节为:b'\xe4\xba\xba
再来看下十六进制数转换成十进制数的例子: