Python-3.12.0文档解读-内置函数bytes()详细说明+记忆策略+常用场景+巧妙用法+综合技巧


一个认为一切根源都是“自己不够强”的INTJ

个人主页:用哲学编程-优快云博客
专栏:每日一题——举一反三
Python编程学习
Python内置函数

Python-3.12.0文档解读

目录

详细说明

概述

构造函数

参数说明

示例

字节串字面值

操作与方法

相关类型

记忆策略

1. 理解函数名的构成

2. 关联函数名与作用

常用场景

场景 1: 编码字符串为字节

场景 2: 创建固定长度的字节序列

场景 3: 处理二进制数据

场景 4: 字节数据的序列化和反序列化

场景 5: 字节数据的格式化和解析

巧妙用法

1. 生成随机字节序列

2. 字节序列的快速填充

3. 字节序列的编码和解码

4. 字节序列的位操作

综合技巧

1. 使用 zip 和 bytes 进行字节级操作

2. 使用 itertools 和 bytes 进行字节串的迭代处理

3. 使用 functools.reduce 和 bytes 进行字节串的累积操作


详细说明

概述

bytes 类返回一个新的“bytes”对象,这是一种不可变的序列,其包含的元素范围为 0 <= x < 256 的整数。bytes 是 bytearray 的不可变版本,提供了类似的操作方法,但其内容一旦创建便无法修改。bytes 对象支持索引和切片操作,可以通过多种方式构造,具体如下。

构造函数
  1. bytes(source=b''):
    • 默认构造函数,返回一个空的 bytes 对象。
    • 如果提供了 source 参数,则根据不同的类型创建对应的 bytes 对象。
  2. bytes(source, encoding):
    • 使用指定的字符编码将 source 转换为 bytes 对象。
    • source 应该是一个字符串类型,encoding 指定了编码方案(如 'utf-8','ascii' 等)。
  3. bytes(source, encoding, errors):
  • 与上述构造函数类似,但是多了一个 errors 参数,用于指定如何处理编码错误。
  • errors 参数可以是 'strict'(默认),'ignore','replace' 等等。
参数说明
  • source:
    • 字符串(str):需要提供 encoding 参数,将字符串编码为字节。
    • 整数(int):创建一个长度为 source 的零字节数组。
    • 可迭代对象:包括列表、元组等,元素必须是 0 到 255 之间的整数。
    • 缓冲区接口对象:如 bytes,bytearray,memoryview 等,可以直接转换为 bytes 对象。
  • encoding(可选):指定字符串编码,常用的编码方式有 utf-8,ascii,latin-1 等。
  • errors(可选):指定编码错误的处理方式,常见的取值有 strict,ignore,replace,xmlcharrefreplace,backslashreplace 等。
示例

# 使用字符串和编码构造 bytes 对象
s = "Hello, 世界"
b = bytes(s, 'utf-8')
print(b)  # 输出: b'Hello, \xe4\xb8\x96\xe7\x95\x8c'

# 从整数构造 bytes 对象
b = bytes(5)
print(b)  # 输出: b'\x00\x00\x00\x00\x00'

# 从可迭代对象构造 bytes 对象
b = bytes([65, 66, 67, 68])
print(b)  # 输出: b'ABCD'

# 通过缓冲区接口对象构造 bytes 对象
ba = bytearray(b'hello')
b = bytes(ba)
print(b)  # 输出: b'hello'
字节串字面值

bytes 对象可以通过字面值创建。字面值以 b 或 B 开头,后跟一对引号(单引号或双引号)包围的内容。例如,b'hello' 或 B"hello" 都是合法的字节串字面值。

b1 = b'hello'
b2 = B"hello"
print(b1 == b2)  # 输出: True
操作与方法

bytes 对象支持众多操作和方法,包括:

  • 索引和切片:
    b = b'hello'
    print(b[1])     # 输出: 101
    print(b[1:3])   # 输出: b'el'
  • 常用方法:
  • b.count(sub[, start[, end]]):返回子序列 sub 在 b 中出现的次数。
  • b.
### 使用 `wget` 下载 Python 3.12.0 源码并解压安装的步骤 #### 1. ### 创建工作目录 在开始之前,建议创建一个专门的工作目录用于存储下载的源码文件。这有助于保持系统整洁有序。 ```bash mkdir -p /usr/src/python3.12 cd /usr/src/python3.12 ``` #### 2. ### 下载 Python 源码包 使用 `wget` 命令从官方站点获取指定版本的 Python 源码压缩包。 ```bash wget https://www.python.org/ftp/python/3.12.0/Python-3.12.0.tgz ``` 此命令会将 Python 的源码压缩包保存到当前路径下[^1]。 #### 3. ### 验证下载完整性(可选) 如果需要验证下载文件的完整性,可以通过校验其 SHA256 或 MD5 值来确保文件未被篡改或损坏。例如: ```bash sha256sum Python-3.12.0.tgz ``` 对比输出的结果与官网提供的哈希值是否一致。 #### 4. ### 解压源码包 使用 `tar` 工具解压刚刚下载的 `.tgz` 文件。 ```bash tar -zxvf Python-3.12.0.tgz ``` 该命令会在当前目录下生成名为 `Python-3.12.0` 的子目录,其中包含了所有的源代码文件[^2]。 #### 5. ### 进入解压后的源码目录 进入解压得到的目录以便继续执行后续操作。 ```bash cd Python-3.12.0 ``` #### 6. ### 配置编译选项 运行 `./configure` 脚本来检测开发环境中必要的工具链以及设置安装路径。 ```bash ./configure --prefix=/usr/local/python3.12/ ``` 这里的 `--prefix` 参数指定了最终安装的目标路径。可以根据实际情况调整为其他位置[^2]。 #### 7. ### 开始编译过程 调用 `make` 来启动源码的实际编译阶段。这一环节可能会花费一些时间视硬件性能而定。 ```bash make ``` #### 8. ### 执行安装命令 当编译完成后即可正式进行安装动作。 ```bash make install ``` 此时所有必需组件会被复制到前面定义好的 `/usr/local/python3.12/` 中去[^2]。 #### 9. ### 将新版本加入全局环境变量 为了让系统能够识别刚装上的这个新的 Python 版本,在某些情况下可能还需要手动添加软链接或者修改 PATH 变量。 ```bash ln -s /usr/local/python3.12/bin/python3.12 /usr/local/bin/python3.12 ln -s /usr/local/python3.12/bin/pip3.12 /usr/local/bin/pip3.12 ``` --- ### 注意事项 - 整个过程中需具备管理员权限才能顺利完成部分写入敏感区域的操作;如果没有,则考虑借助 `sudo` 提升权限后再尝试相应指令。 - 若目标 Linux 发行版自带旧版 Python 并且正在被核心服务依赖着的话,请谨慎覆盖原有二进制文件以防引发不可预见的问题!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

用哲学编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值