Python中bytes与str的区别

Yang 289

Python中bytes与str的区别主要是它们是两种不同的数据类型。bytes是二进制数据,而str是Unicode文本。在Python中,bytes是一个类型,用于代表字节串,是不可变序列,包含范围为0 <= x < 256的整数。bytes可以看做是bytearray的不可变版本,它同样支持索引和切片操作。

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()

回复

我来回复
  • 暂无回复内容

站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部