Python(00):bytes字节串类型及用法

【自取】最近整理的,有需要可以领取学习:

一、bytes 字节串类型概述

由于 bytes 保存的就是原始的字节(二进制格式)数据,因此 bytes
对象可用于通过网络传输数据,或以各种二进制格式存储文件,如图片、音乐等。

[En]

Objects can be used to transfer data over the network, or to store files in various binary formats, such as pictures, music, and so on.

bytes 和 str 除操作的数据单元不同之外,它们支持的所有方法都基本相同,bytes 也是不可变序列。

计算机底层有两个基本概念:位(bit)和字节(Byte),其中

在字节串中每个数据单元都是字节,也就是 8 位,其中每 4 位(相当于 4 位二进制数,最小值为 0 ,最大值为
15)可以用一个十六进制数来表示,因此每字节需要两个十六进制数表示,

    b'\xe6\x88\x91\xe7\x88\xb1Python\xe7\xbc\x96\xe7\xa8\x8b',
    # 比如 :\xe6 就表示 1 字节,其中 \x 表示十六进制,e6 就是两位的十六进制数。

Unicode 字符集,包括汉字,为两个字节(16 位,支持 65536 个字符编号)。实际使用的 UTF-8, UTF-16 等其实都属于 Unicode
字符集。

二、字节串与字符串之间的转换

bytes
对象只负责以字节(二进制格式)序列记录数据,完全由程序决定数据代表什么。如果使用了适当的字符集,则可以将该字符串转换为字节字符串;反之,可以将该字节字符串恢复为相应的字符串。

[En]

Objects are only responsible for recording data in byte (binary format) sequences, and it is entirely up to the program to decide what the data represents. If the appropriate character set is used, the string can be converted into a byte string; conversely, the byte string can be restored to the corresponding string.

如果希望将一个字符串转换成 bytes 对象,有如下三种方式:

下面程序中 b1~b5 都是字节串对象,该程序示范了以不同方式来构建字节串对象。其中 b2、b3 都是直接在 ASCII
字符串前添加b前缀来得到字节串的:b4 调用 bytes() 函数来构建字节串;而 b5 则调用字符串的 encode 方法来构建字节串。

1. 如果字符串内容都是 ASCII 字符,则可以通过直接在字符串之前添加 b 来构建字节串值。
# 创建一个空的bytes
b1 = bytes()
# 创建一个空的bytes值
b2 = b''
# 1、通过b前缀指定hello是bytes类型的值
b3 = b'hello'
print(b3)
print(b3[0])
print(b3[2:4])

#b'hello'
#104
#b'll'
# 调用bytes方法将字符串转成bytes对象
b4 = bytes('我爱Python编程',encoding='utf-8')
print(b4)
#b'\xe6\x88\x91\xe7\x88\xb1Python\xe7\xbc\x96\xe7\xa8\x8b'
# 利用字符串的encode()方法编码成bytes,默认使用utf-8字符集
b5 = "学习Python很有趣".encode('utf-8')
print(b5)
#b'\xe5\xad\xa6\xe4\xb9\xa0Python\xe5\xbe\x88\xe6\x9c\x89\xe8\xb6\xa3'

从上面的输出中可以看到,字节字符串与字符串非常相似,不同之处在于字节字符串中的每个数据单元都是1字节。

[En]

As you can see from the output above, a byte string is very similar to a string, except that each data unit in the byte string is 1 byte.

如果程序获得了 bytes 对象,也可调用 bytes 对象的 decode() 方法将其解码成字符串,

    #将bytes 对象解码成字符串,默认使用UTF-8进行解码
    st = b5.decode('utf-8')
    print(st)#学习Python很有趣

Original: https://www.cnblogs.com/springsnow/p/16254939.html
Author: springsnow
Title: Python(00):bytes字节串类型及用法

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/9862/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

发表回复

登录后才能评论
免费咨询
免费咨询
扫码关注
扫码关注
联系站长

站长Johngo!

大数据和算法重度研究者!

持续产出大数据、算法、LeetCode干货,以及业界好资源!

2022012703491714

微信来撩,免费咨询:xiaozhu_tec

分享本页
返回顶部