Python 字典和列表是许多应用程序的基础,但是 对于更高级的数据组织来说可能太简单了。为了提供更多 用于在内存中存储数据的强大容器 Python 提供了一个 collection 模块包含以下内容:
API 参考: https://docs.python.org/3/library/collections.html
Python 有 with 关键字创建将自动清理的上下文管理器 词汇范围内的事物。例如,您不必担心关闭 自己创建一个文件,如果你像这样打开它:
with open("results.txt", "w") as out_f:
out_f.write("...\n")
...
contextlib 模块提供帮助程序来使用代码中的上下文管理器。 例如,您可以使用 @contextmanager 注解转自己的函数 可以通过以下方式使用 with 句法。
API参考: https://docs.python.org/3/library/contextlib.html
由于浮点数如何表示的技术现实, 浮点计算可能会产生一些奇怪的结果:
>>> 0.1 + 0.1 + 0.1 - 0.3 5.551115123125783e-17 >>> 1.2 + 2.2 3.4000000000000004
这在数学上是不正确的,并且对于某些应用程序来说是一个破坏者,例如 就像那些与金钱打交道的人一样。为了解决这个问题,Python 推出了 decimal 允许我们使用运算符将十进制数表示为 Python 对象的模块 超载。调整计算以便我们得到正确的结果 (在可配置的精度水平内):
>>> from decimal import *
>>> one_point_two = Decimal('1.2')
>>> one_point_two
Decimal('1.2')
>>> two_point_two = Decimal('2.2')
>>> two_point_two
Decimal('2.2')
>>> one_point_two + two_point_two
Decimal('3.4')
API参考: https://docs.python.org/3/library/decimal.html
同样,我们在处理分数时也会遇到问题 - 三分之一是 不完全等于 0.333……Python 附带 fractions 模块来表示 它们作为具有运算符重载的 Python 对象:
>>> import fractions >>> one_third = fractions.Fraction(numerator=1, denominator=3) >>> 2 * one_third Fraction(2, 3)
API 参考: https://docs.python.org/3/library/fractions.html
Python解释器是作为 栈机 实现的 内部。当您运行一些 Python 代码时,它会被编译为特定于 Python 的代码 Python VM 执行的字节码。用于调试或性能优化 出于某种目的,可能需要将 Python 字节码反汇编为指令。 标准 Python 安装附带 dis 采用 Python 的模块 代码单元(例如函数)并将代码分解为一种 伪汇编器:
>>> import dis
>>> def add(a, b):
... return a+b
...
>>> dis.dis(add)
1 0 RESUME 0
2 2 LOAD_FAST 0 (a)
4 LOAD_FAST 1 (b)
6 BINARY_OP 0 (+)
10 RETURN_VALUE
API参考: https://docs.python.org/3/library/dis.html
Python statistics 模块提供了一个统计算法的小工具包 对于相对简单的应用程序,使用 Pandas 或 Numpy:标准差、数值数据的几种平均值、线性 回归、相关、正态分布等。对于渴望的人们 加入 AI/ML 革命,它提供朴素贝叶斯分类器 - 一种算法 这可以被认为是机器学习的最小可行示例。
API参考: https://docs.python.org/3/library/statistics.html
有时您可能想从 Python 代码中打开 Web 浏览器。自从Python 是可移植的多平台语言,这可能会有点麻烦,因为 平台和设置之间的差异。为了使这更容易,Python 提供了一个 webbrowser 具有简单 API 的模块使浏览器显示页面。例如, 我们可以打电话 open_new() 带有 URL 的函数:
>>> import webbrowser
>>> webbrowser.open_new('https://trickster.dev')
True
如果您想打开本地文件(例如包含某些结果的 HTML 报告) 自动化),您需要将文件 URL 传递给以下函数之一:
>>> import os
>>> file_url = 'file://' + os.path.realpath('test.html')
>>> webbrowser.open(file_url)
True
API参考: https://docs.python.org/3/library/webbrowser.html
如果存在以下情况,以源代码形式分发 Python 程序可能会出现问题: 接收端的一些非技术用户。即使他们安装了Python 可能存在缺少依赖项、版本冲突和其他运行时问题。 为了让这个 Python 飞船不那么可怕 zipapp 带有 CLI 工具和 Python 的模块 用于将 Python 代码打包到单个文件包中的 API。这提供了一个有趣的 使用虚拟环境和 PyInstaller 等解决方案之间的中点 将应用程序编译为特定于平台的形式 - 代码仍然可移植,但是 必须有 Python 解释器才能运行它。