第10章 Python 标准库
1 内置函数
| abs() |
dict() |
help() |
min() |
setattr() |
| all() |
dir() |
hex() |
next() |
slice() |
| any() |
divmod() |
id() |
object() |
sorted() |
| ascii() |
enumerate() |
input() |
oct() |
staticmethod() |
| bin() |
eval() |
int() |
open() |
str() |
| bool() |
exec() |
isinstance() |
ord() |
sum() |
| byterarray() |
filter() |
issubclass() |
pow() |
super() |
| bytes() |
float() |
iter() |
print() |
tuple() |
| callable() |
format() |
len() |
property() |
type() |
| chr() |
frozenset() |
list() |
range() |
vars() |
| classmethod() |
getattr() |
locals() |
repr() |
zip() |
| compile() |
globals() |
map() |
reversed() |
__import__() |
| complex() |
hasattr() |
max() |
round() |
|
| delattr() |
hash() |
memoryview() |
set() |
|
2 内置常量
- False
- True
- None
- NotImplemented
- Ellipsis
- __debug__
3 内置数据类型
3.1 真值测试
以下内置对象被认为是 False:
1. 定义为 False 的变量:None 和 False
2. 数字0类型:0,0.0,0j,Decimal(0),Fraction(0, 1)
3. 空序列和集合:' ',( ),[ ],{ },set(),range(0)
此外,0 和 False 等价,1 和 True 等价。
3.2 布尔操作 - and,or,not
| 操作 |
结果 |
| x or y |
如果 x 为假,则 y,否则 x |
| x and y |
如果 x 为假,则 x,否则 y |
| not x |
如果 x 为假,则真,否则假 |
3.3 比较操作
| 操作 |
含义 |
| < |
严格小于 |
| <= |
小于或等于 |
| > |
严格大于 |
| >= |
大于或等于 |
| == |
等于 |
| != |
不等于 |
| is |
属于 |
| is not |
不属于 |
3.4 数字类型 - int,float,complex
数字类型包括:整数、浮点数和复数,分别使用 int(),float(),complex()创建。对于一个复数 z,分别使用 z.real 和 z.imag 获得实部和虚部。
数字类型操作运算:
操作|结果
-|-
x + y | x 和 y 的和
x - y| x 和 y 的差
x * y | x 和 y 的积
x / y | x 和 y 的商
x // y | x 和 y 的商向下取整
x % y | x / y 的余数
-x | x 的相反数
+x | x
abs(x) | x 的绝对值
int(x) | 把 x 转化成整数
float(x) | 把 x 转化成浮点数
complex(re, im) | 把 re 转化成实部,im 转化成虚部
c.conjugate() | 复数 c 的共轭复数
divmod(x, y) | 元组(x // y, x % y)
pow(x, y) | x 的 y 次方
x ** y | x 的 y 次方
3.5 迭代器和生成器类型
iterator.__iter__()
iterator.__next__()
3.6 序列类型 - list,tuple,range
- 序列类型操作运算:
| 操作 |
结果 |
| x in s |
如果 x 是 s 子串,返回真,否则假 |
| x not in s |
如果 x 不是 s 子串,返回真,否则假 |
| s + t |
连接 s 和 t |
| s * n 或 n * s |
重复 n 次 s |
| s[i] |
s 的第 i 项,从 0 开始 |
| s[i: j] |
切片,从 s 的 第 i 项到第 j - 1 项 |
| s[i: j: k] |
切片,以步长 k 从 s 的 第 i 项到第 j - 1 项 |
| len(s) |
s 的长度 |
| min(s) |
s 的最小项 |
| max(s) |
s 的最大项 |
| s.index(x[, i[, j]]) |
x 在 s 中第一次出现的位置,在 s 的 i 到 j-1 之间 |
| s.count(x) |
x 在 s 中出现的次数 |
- 可变序列操作运算:
| 操作 |
结果 |
| s[i] = x |
用 x 替换 s 中的第 i 项 |
| s[i: j] = t |
用可迭代 t 替换切片 s 从 i 到 j-1 |
| del s[i: j] |
删除切片 s 从 i 到 j-1,等价于 s[i: j] = [ ] |
| s[i: j: k] = t |
用 t 替代 s[i: j: k] 中的元素 |
| del s[i: j: k] |
删除 s[i: j: k] 中的元素 |
| s.append(x) |
把 x 添加到序列末尾,等价于 s[len(s): len(s)] = [x] |
| s.clear() |
移除 s 所有元素,等价于 del s[:] |
| s.copy() |
创建 s 的副本,等价于 s[:] |
| s.extend(t) 或 s += t |
把 t 添加到 s,等价于 s[len(s): len(s)] = t |
| s *= n |
更新并重复 n 次 s |
| s.insert(i, x) |
把 x 插入到 s 的第 i 个位置 |
| s.pop([i]) |
从 s 中移除第 i 个位置的元素,默认是最后一个 |
| s.remove(x) |
移除在 s 中出现的第一个 x |
| s.reverse() |
把 s 的所有元素反转 |
-
列表 - Lists
创建列表的方法:
(1)使用一对中括号创建一个空列表:[ ]
(2)使用一对中括号,元素之间用逗号分隔:[a]或[a, b, c]
(3)使用一个列表理解:[x for x in iterable]
(4)使用类型构造函数:list() 或 list(iterable)
-
元组 - Tuples
创建元组的方法:
(1)使用一对小括号创建一个空元祖:( )
(2)使用一个逗号创建只有一项的元组:a, 或(a,)
(3)使用逗号分隔:a, b, c 或 (a, b, c)
(4)使用内置 tuple() 函数:tuple() 或 tuple(iterable)
-
随机序列 - Ranges
class range(stop)
class range(start, stop[, step])
3.7 文本序列类型 - str
字符串表示形式:
(1)单引号:'允许包含"双"引号'
(2)双引号:"允许包含'单'引号"
(3)三引号:'''三单引号''' 或 """三双引号"""
3.8 二进制序列类型 - bytes,bytearray,memoryview
-
bytes 表示形式:
(1)单引号:b'允许包含"双"引号'
(2)双引号:b"允许包含'单'引号"
(3)三引号:b'''三单引号''' 或 b"""三双引号"""
-
bytearray 表示形式:
(1)创建一个空实例:bytearray()
(2)创建一个给定长度的0填充实例:bytearray(10)
(3)从一个整型可迭代对象创建:bytearray(range(20))
(4)从一个存在的二进制数据复制:bytearray(b'Hi!')
-
memoryview 表示形式:
使用 memoryview()
3.9 集合类型 - set,frozenset
3.10 字典类型 - dict
3.11 上下文管理器类型
使用 with
3.12 其他内置类型
- 模块 - Modules
- 类和类实例 - Classes,Class Instances
- 函数 - Functions
- 方法 - Methods
- 代码对象 - Code Objects
- 类型对象 - Type Objects
- 空值对象 - Null Object
- 省略对象 - Ellipsis Object
- 非实现对象 - NotImplemented Obejct
- 布尔值 - Boolean Values
- 内部对象 - Internal Objects
3.13 特殊属性 - Special Attributes
4 内置异常类型
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64 | BaseException
+-- SystemExit
+-- KeyboardInterrupt
+-- GeneratorExit
+-- Exception
+-- StopIteration
+-- StopAsyncIteration
+-- ArithmeticError
| +-- FloatingPointError
| +-- OverflowError
| +-- ZeroDivisionError
+-- AssertionError
+-- AttributeError
+-- BufferError
+-- EOFError
+-- ImportError
| +-- ModuleNotFoundError
+-- LookupError
| +-- IndexError
| +-- KeyError
+-- MemoryError
+-- NameError
| +-- UnboundLocalError
+-- OSError
| +-- BlockingIOError
| +-- ChildProcessError
| +-- ConnectionError
| | +-- BrokenPipeError
| | +-- ConnectionAbortedError
| | +-- ConnectionRefusedError
| | +-- ConnectionResetError
| +-- FileExistsError
| +-- FileNotFoundError
| +-- InterruptedError
| +-- IsADirectoryError
| +-- NotADirectoryError
| +-- PermissionError
| +-- ProcessLookupError
| +-- TimeoutError
+-- ReferenceError
+-- RuntimeError
| +-- NotImplementedError
| +-- RecursionError
+-- SyntaxError
| +-- IndentationError
| +-- TabError
+-- SystemError
+-- TypeError
+-- ValueError
| +-- UnicodeError
| +-- UnicodeDecodeError
| +-- UnicodeEncodeError
| +-- UnicodeTranslateError
+-- Warning
+-- DeprecationWarning
+-- PendingDeprecationWarning
+-- RuntimeWarning
+-- SyntaxWarning
+-- UserWarning
+-- FutureWarning
+-- ImportWarning
+-- UnicodeWarning
+-- BytesWarning
+-- ResourceWarning
|
5 日期类型
| 模块 |
描述 |
| datetime |
基本日期和时间类型 |
| calendar |
通用日历相关函数 |
| collections |
容器数据类型 |
| collections.abc |
抽象基类容器 |
| heapq |
堆栈类算法 |
| bisect |
矩阵二分算法 |
| array |
高效的数值数组 |
| weakref |
弱引用 |
| types |
动态类型创建和内置类型名称 |
| copy |
浅复制和深复制 |
| pprint |
优质数据打印 |
| reprlib |
交替 repr() 实现 |
| enum |
枚举支持 |
6 数值和数学模块
| 模块 |
描述 |
| numbers |
数值抽象基类 |
| math |
数学函数 |
| cmath |
复数数学函数 |
| decimal |
十进制定点和浮点运算 |
| fractions |
有理数 |
| random |
生成伪随机数 |
| statistics |
数理统计函数 |
7 功能编程模块
| 模块 |
描述 |
| itertools |
创建高效循环的迭代器函数 |
| functools |
高阶函数及其在可调用对象上的操作 |
| operator |
标准操作函数 |
8 访问文件和目录
| 模块 |
描述 |
| pathlib |
面向对象的文件系统路径 |
| os.path |
常用路径名操作 |
| fileinput |
遍历多行输入流 |
| stat |
解释 stat() 结果 |
| filecmp |
比较文件和目录 |
| tempfile |
生成临时文件和目录 |
| glob |
Unix 风格路径名模式扩展 |
| fnmatch |
Unix 文件名模式匹配 |
| lincache |
随机访问文本行 |
| shutil |
高级文件操作 |
| macpath |
Mac 9 路径操作函数 |
9 数据持久化
| 模块 |
描述 |
| pickle |
Python 对象序列化 |
| copyreg |
注册 pickle 支持函数 |
| shelve |
Python 对象持久化 |
| marshal |
内部 Python 对象序列化 |
| dbm |
Unix 数据库接口 |
| sqlite3 |
SQLite 数据库 DB-API 2.0 接口 |
10 数据压缩和归档
| 模块 |
描述 |
| zlib |
兼容 gzip 的压缩 |
| gzip |
支持 gzip 文件 |
| bz2 |
支持 bzip2 压缩 |
| lzma |
使用 LZMA 算法压缩 |
| zipfile |
与 ZIP 文档工作 |
| tarfile |
读写 tar 文档文件 |
11 文件格式
| 模块 |
描述 |
| csv |
CSV 文件读写 |
| configparser |
配置文件解析器 |
| netrc |
netrc 文件处理 |
| xdrlib |
编解码 XDR 数据 |
| plistlib |
生成和解析 Mac OS X .plist 文件 |
12 加密服务
| 模块 |
描述 |
| hashlib |
安全离散和消息摘要 |
| hmac |
用于消息认证的密钥离散 |
| secrets |
生成用于管理秘密的安全随机数 |
13 通用操作系统服务
| 模块 |
描述 |
| os |
操作系统接口 |
| io |
与流一起工作的核心工具 |
| time |
时间访问与转换 |
| argparse |
命令行选项、参数和子命令的解析器 |
| getopt |
C 样式的命令行选项解析器 |
| logging |
Python 日志设备 |
| logging.config |
配置日志 |
| logging.handlers |
日志处理程序 |
| getpass |
便携式密码输入 |
| curses |
字符单元显示器的终端处理 |
| curses.textpad |
文本输入部件程序 |
| curses.ascii |
ASCII 输入的实用工具 |
| surses.panel |
面板堆栈扩展 |
| platform |
访问底层平台的标识数据 |
| errno |
标准 errno 系统符号 |
| ctypes |
Python 的一个异域函数库 |
14 并行计算
| 模块 |
描述 |
| threading |
基于线程的并行性 |
| multiprocessing |
基于过程的并行性 |
| concurrent |
concurrent 包 |
| concurrent.futures |
启动并行任务 |
| subprocess |
子过程管理 |
| sched |
时间调度器 |
| queue |
同步队列类 |
| dummy_threading |
更换 threading 模块 |
| _thread |
低层线程 API |
| _dummy_thread |
更换 _thread 模块 |
15 进程间通信与网络化
| 模块 |
描述 |
| socket |
底层网络接口 |
| ssl |
套接字对象的 TSL/SSL 包装器 |
| select |
等待 I/O 完成 |
| selectors |
高级 I/O 复用 |
| asyncio |
异步I/O、事件循环、协同程序和任务 |
| asyncore |
异步套接字处理程序 |
| asynchat |
异步套接字命令/响应处理器 |
| signal |
设置异步事件的处理程序 |
| mmap |
内存映射文件支持 |
16 互联网数据处理
| 模块 |
描述 |
| email |
电子邮件和 MIME 处理包 |
| json |
JSON 编解码 |
| mailcap |
Mailcap 文件处理 |
| mailbox |
操作各种格式的邮箱 |
| mimetypes |
将文件名映射到MIME类型 |
| base64 |
Base16, Base32, Base64, Base85 数据编码 |
| binhex |
编解码 binhex4 文件 |
| binascii |
二进制和 ASCII 转换 |
| quopri |
对MIME引用的可打印数据进行编解码 |
| uu |
编解码 uuencode 文件 |
17 结构化标记处理工具
| 模块 |
描述 |
| html |
支持 HTML |
| html.parser |
简单 HTML 和 HTML 解析器 |
| html.entities |
HTML通用实体的定义 |
| xml |
XML 处理模块 |
| xml.etree.ElementTree |
XML 元素树 API |
| xml.dom |
XML DOM |
| xml.dom.minidom |
XML 最小 DOM 实现 |
| xml.dom.pulldom |
XML 支持部分 DOM 树的构建 |
| xml.sax |
XML 支持 SAX2 解析器 |
| xml.sax.handler |
XML SAX 处理程序的基类 |
| xml.sax.saxutils |
XML SAX 实用工具 |
| xml.sax.xmlreader |
XML 解析器接口 |
| xml.parsers.expat |
使用 Expat 快速 XML 解析 |
18 因特网协议与支持
| 模块 |
描述 |
| webbrowser |
方便的Web浏览器控制器 |
| cgi |
公共网关接口支持 |
| cgitb |
CGI 脚本回溯管理器 |
| wsgiref |
WSGI 实用工具和参考实现 |
| urllib |
URL 处理模块 |
| urllib.request |
打开 URL 的扩展库 |
| urllib.response |
urllib 使用的响应类 |
| urllib.parse |
将 URL 解析成组件 |
| urllib.error |
由 urllib 请求引发的异常类 |
| urllib.robotparser |
robots.txt 解析器 |
| http |
HTTP 模块 |
| http.client |
HTTP 协议客户端 |
| ftplib |
FTP 协议客户端 |
| poplib |
POP3 协议客户端 |
| imaplib |
IMAP4 协议客户端 |
| nntplib |
NNTP 协议客户端 |
| smtplib |
SMTP 协议客户端 |
| smtpd |
SMTP 服务器 |
| telnetlib |
Telnet 客户端 |
| uuid |
RFC 4122 UUID 对象 |
| socketserver |
网络服务器架构 |
| http.server |
HTTP 服务 |
| http.cookies |
HTTP 状态管理 |
| http.cookiejar |
HTTP 客户端的 Cookie 处理 |
| xmlrpc |
XMLRPC 服务器和客户端模块 |
| xmlrpc.client |
XML- RPC客户端访问 |
| xmlrpc.server |
基本 XML- RPC 服务器 |
| ipaddress |
IPv4/IPv6 操作库 |
19 多媒体服务
| 模块 |
描述 |
| audioop |
操纵原始音频数据 |
| aifc |
读写 AIFF 和 AIFC 文件 |
| sunau |
读写 Sun AU 文件 |
| wave |
读写 WAV 文件 |
| chunk |
读取 IFF 块数据 |
| colorsys |
颜色系统之间的转换 |
| imghdr |
确定图像的类型 |
| sndhdr |
确定声音文件的类型 |
| ossaudiodev |
访问 OSS 兼容音频设备 |
20 国际化
| 模块 |
描述 |
| gettext |
多语种国际化服务 |
| locale |
国际化服务 |
21 程序框架
| 模块 |
描述 |
| turtle |
龟标制图 |
| cmd |
支持命令行解释器 |
| shlex |
简单词法分析 |
22 带有TK的图形用户界面
| 模块 |
描述 |
| tkinter |
Tcl/Tk 的 Python 接口 |
| tkinter.ttk |
Tk主题控件 |
| tkinter.tix |
TK 的扩展小部件 |
| tkinter.scrolledtext |
滚动文本控件 |
| IDLE |
Python 的集成开发和学习环境 |
| Other Graphical User Interface Packages |
其他图形用户界面包 |
23 开发工具
| 模块 |
描述 |
| typing |
支持类型提示 |
| pydoc |
文档生成器和在线帮助系统 |
| doctest |
测试交互 Python 示例 |
| unittest |
单元测试框架 |
| unittest.mock |
模拟对象库 |
| unittest.mock |
开始使用模拟对象库 |
| 2to3 |
自动 Python 2 到 3 代码翻译 |
| test |
Python 回归测试包 |
| test.support |
Python 测试套件的实用工具 |
24 调试与分析
| 模块 |
描述 |
| bdb |
调试器框架 |
| faulthandler |
转储 Python 回溯 |
| pdb |
Python 调试器 |
| The Python Profilers |
Python 分析器 |
| timeit |
测量小代码段的执行时间 |
| trace |
跟踪 Python 语句执行 |
| tracemalloc |
跟踪内存分配 |
25 软件包装与分发
| 模块 |
描述 |
| distutils |
构建和安装 Python 模块 |
| ensurepip |
引导 pip 安装程序 |
| venv |
虚拟环境的创建 |
| zipapp |
管理可执行的 Python 压缩文件 |
26 Python 运行时服务
| 模块 |
描述 |
| sys |
系统特定参数和功能 |
| sysconfig |
提供对 Python 配置信息的访问 |
| builtins |
内置对象 |
| main |
顶级脚本环境 |
| warnings |
警告控制 |
| contextlib |
具有语句上下文的实用工具 |
| abc |
抽象基类 |
| atexit |
退出处理程序 |
| traceback |
打印或检索堆栈回溯 |
| future |
未来语句定义 |
| gc |
垃圾收集器接口 |
| inspect |
检查活体物体 |
| site |
站点特定配置钩子 |
| fpectl |
浮点异常控制 |
27 自定义 Python 解释器
| 模块 |
描述 |
| code |
解释器基类 |
| codeop |
编译 Python 代码 |
28 导入模块
| 模块 |
描述 |
| zipimport |
从 Zip 档案导入模块 |
| pkgutil |
软件包扩展实用程序 |
| modulefinder |
查找脚本使用的模块 |
| runpy |
定位和执行 Python 模块 |
| importlib |
实现导入 |
29 Python 语言服务
| 模块 |
描述 |
| parser |
访问 Python 解析树 |
| ast |
抽象语法树 |
| symtable |
访问编译器的符号表 |
| symbol |
与 Python 解析树一起使用的常数 |
| token |
与 Python 解析树一起使用的常数 |
| keyword |
Python 关键字的测试 |
| tokenize |
Python 信源记录器 |
| tabnanny |
模糊压痕检测 |
| pyclbr |
Python类浏览器支持 |
| py_compile |
编译 Python 源文件 |
| compileall |
字节编译 Python 库 |
| dis |
Python 字节码反汇编程序 |
| pickletools |
pickle 开发工具 |
30 杂项服务
31 微软 Windows 特定服务
| 模块 |
描述 |
| msilib |
读写微软安装程序文件 |
| msvcrt |
MS VC++ 运行时的有用例程 |
| winreg |
Windows 注册表访问 |
| winsound |
Windows 的声音播放界面 |
32 Unix 特定服务
| 模块 |
描述 |
| posix |
最常见的 POSIX 系统调用 |
| pwd |
密码数据库 |
| spwd |
浅层密码数据库 |
| grp |
群数据库 |
| crypt |
检查 Unix 密码函数 |
| termios |
POTX 风格 tty 控件 |
| tty |
终端控制函数 |
| pty |
伪终端实用程序 |
| fcntl |
fcntl 和 ioctl 系统调用 |
| pipes |
管道接口 |
| resource |
资源使用信息 |
| nis |
Sun NIS 接口(黄页) |
| syslog |
Unix 系统日志库例程 |
33 取代模块
| 模块 |
描述 |
| optparse |
命令行选项解析器 |
| imp |
访问 import 内部 |
34 无证模块
| 模块 |
描述 |
| Platform specific modules |
平台特定模块 |