浅析Python 3 字符串中的 STR 和 Bytes 有什么区别
在 Python 3 中,STR 和 Bytes 是最基础和常用的两个数据类型之一,它们之间的区别是非常重要的。在本文中,我们将深入浅出地讲解 STR 和 Bytes 的含义、区别以及在 Python 中的使用。
STR 和 Bytes 的含义
STR
STR 是字符串类型,在 Python 中,这个数据类型是一组 Unicode 字符序列,包括中文、英文、数字、符号等。使用双引号(")或单引号(')将字符串括起来,在代码中直接使用即可。
例如:
str_example = 'Hello world!'
Bytes
Bytes 是字节类型,在 Python 中,字节类型是 Python3 新增的一种数据类型,它是一个二进制序列,包含 byte 代码单元。使用前缀 b 或 B 将其括在一对单引号或双引号中。
例如:
bytes_example = b'\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x21'
STR 和 Bytes 的区别
1. 字符集
在 Python 3 中,字符串(STR)是 Unicode 字符串,每个字符占用四个字节。而字节(Bytes)是二进制序列,不属于任何字符集,它可以是任何字节组合。如果需要在 STR 和 Bytes 之间转换,需要考虑字符集的问题。
例如:
str_example = 'Hello world!' # Unicode 字符串
bytes_example = b'Hello world!' # 字节字符串
print(str_example.encode('utf-8')) # b'Hello world!'
print(bytes_example.decode('utf-8')) # 'Hello world!'
在上述例子中,str_example 和 bytes_example 分别是 Unicode 字符串(STR)和字节字符串(Bytes),当需要在这两种类型之间进行转换的时候,我们需要指定字符集,比如这里使用了 UTF-8 进行编码和解码。
2. 可变性
在 Python 中,STR 是不可变类型。这意味着它们的值不能被更改。如果需要更改其中的值,需要重新创建一个新的 STR 对象。而 BYTE 是可变类型,可以快速地进行更改。
例如:
str_example = 'Hello world!' # Unicode 字符串,不可变类型
str_example[0] = 'h' # TypeError: 'str' object does not support item assignment
bytes_example = b'Hello world!' # 字节字符串,可变类型
bytes_example[0] = 104
print(bytes_example) # b'hello world!'
总结
在 Python 3 中,STR 和 Bytes 是最基础和常用的两个数据类型之一,我们需要根据不同的应用场景去选择合适的类型。STR 是 Unicode 字符串,而 Bytes 是二进制序列;STR 是不可变类型,而 Bytes 是可变类型。要在 STR 和 Bytes 之间进行操作或转换,需要考虑字符集的问题。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:浅析Python 3 字符串中的 STR 和 Bytes 有什么区别 - Python技术站