Python中bytes与str的区别
一、两种不同的数据类型
bytes是二进制数据,而str是Unicode文本。
在Python中,bytes是一个类型,用于代表字节串,是不可变序列,包含范围为0 <= x < 256的整数。bytes可以看做是bytearray的不可变版本,它同样支持索引和切片操作。
在Python中,str是一个类型,用于代表字符串,是一种不可变序列,包含Unicode字符。Unicode是一种字符编码方案,它可以有效地解决传统编码存在的问题。Python的字符串类型使用Unicode标准来表示字符,这使得Python程序可以处理所有可能的字符。Unicode标准包含许多表格,列出了字符和它们的代码点值。代码点值是0到0x10FFFF(约110万个值)之间的整数。
二、bytes和str之间的转换
bytes和str之间的转换可以使用encode()和decode()方法。在Python中,encode()和decode()是用于字符串编码和解码的方法。encode()方法将字符串转换为字节,而decode()方法将字节转换为字符串,bytes类型的二进制数据转换为str类型,这个过程也称为“解码”。
从str到bytes的过程,我们称之为编码(encode)。是从人能阅读的字符数据,转换到机器阅读的字节数据。反之,称之为解码(decode)
1、使用str() 和bytes() 进行编码和解码
>>> date = ‘20200920’
>>> date_b = b’MjAyMDA5MjA=’
>>> # 编码
>>> b = bytes(date, encoding=’utf-8′)
>>> print(b)
b’20200920′
>>> type(b)
<class ‘bytes’>
>>> # 解码
>>> a = str(date_b, encoding=’utf-8′)
>>> print(a)
MjAyMDA5MjA=
>>> type(a)
<class ‘str’>
可以看出,编码和解码不改变 ‘’ 中的内容,只改变变量的格式。
2、另一种编解码方式:encode()和decode()
>>> date = ‘20200920’
>>> date_b = b’MjAyMDA5MjA=’
>>> # 编码
>>> b = date、encode(encoding=’utf-8′)
>>> print(b)
b’20200920′
>>> type(b)
<class ‘bytes’>
>>> # 解码
>>> a = date_b、decode(encoding=’utf-8′)
>>> print(a)
MjAyMDA5MjA=
>>> type(a)
<class ‘str’>
可以看出,编码和解码不改变 ‘’ 中的内容,只改变变量的格式。
2、另一种编解码方式:encode()和decode()
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341