4.6 Python标准库
在编写程序时经常会用到Python中已有的函数和类,例如Python标准库或其他库中的函数和类。使用这些已有的函数和类编写程序来避免重复工作是编程工作中的一个重要准则。
模块是一个对相互关联的函数、数据和类进行分组的文件。前面章节中介绍的Decimal
类型其实就是Python标准库中decimal
模块里的一个类。我们已经在第1章中对类进行了简要的介绍,并将在第10章中进行更加详细的讨论。包则是相关模块的分组。本书的示例中会使用很多已有的模块和包,同时,也会创建自定义模块。事实上,每个Python源代码(.py
)文件都是一个模块,而包的创建则不在本书讨论的范围内。包通常用于将大型的库按照功能组织成更小的子集,这些子集更易于维护,并且可以单独导入,方便使用。例如,在5.17节中使用的matplotlib
可视化库具有非常丰富的功能(其文档超过2300页),因此我们只导入示例中所需的子集pyplot
和animation
。
Python标准库与核心Python语言都由Python来提供。其中的包和模块包含各种编程中常用的功能[1]。可以在以下网址查看标准库模块的完整列表:
https://docs.python.org/3/library/
我们已经使用过decimal
、statistics
和random
模块中的功能。在下一节中,我们还将使用math
模块中的数学功能。在本书的多个示例中还会用到许多其他Python标准库中的模块,下表列出了其中一些常用的模块。
一些常用的Python标准库模块
collections
—列表、元组、字典和集合之外的数据结构。
Cryptography
模块—加密数据以实现安全传输。
csv
—处理用逗号分隔值的文件(如Excel)。
datetime
—日期和时间操作。还有time
和calendar
模块。
decimal
—定点和浮点算术运算,包括货币计算。
doctest
—在简单单元测试的文档字符串中嵌入验证测试和预期结果。
gettext
和locale
—国际化和本地化模块。
json
—与Web服务和NoSQL文档数据库一起使用的JSON(JavaScript Object Notation)处理。
math
—常见的数学常数和操作。
os
—与操作系统交互。
profile
、pstats
、timeit
—性能分析。
random
—伪随机数。
re
—用于模式匹配的正则表达式。
sqlite3
—SQLite关系数据库访问。
statistics
—数学统计函数,如mean
、median
、mode
和variance
。
string
—字符串处理。
sys
—命令行参数处理:标准输入、标准输出和标准错误流。
tkinter
—图形用户界面(GUI)和基于画布的图形。
turtle
—海龟图。
webbrowser
—用于在Python应用程序中方便地显示网页。
[1] Python教程将其比喻为“插入电池”。