Python内置函数速查表:68个Built-in Functions参数与用法汇总

江岸
江岸
发布时间:2026-11-15| 2人浏览过
原创

全面汇总Python 3标准库全部68个内置函数(Built-in Functions),详细梳理参数规格、返回值、核心功能与代码示例,配套作用域解析、分类全景与选型决策图。

在日常Python编写过程中,我们经常需要在无需引入任何模块的情况下快速处理数据,例如判断对象类型、转换格式、切片排序或进行高效集合运算。Python标准库内置命名空间默认提供了68个Built-in Functions,它们是用C语言高度优化的底层工具。本文系统拆解这68个内置函数的定义机制、参数规范、返回值特征及实际用法,帮助读者建立系统化的速查框架。

一、Python内置作用域与LEGB查找机制

当我们在Python代码中直接调用一个函数(如len([1, 2, 3])或abs(-5))而无需显式执行import时,Python解释器依靠LEGB规则解析变量标识符。内置命名空间(Built-in Scope)作为标识符解析的最后一道防线,由builtins模块承载。

在模块运行期间,解释器会在全局字典中注入__builtins__对象。如果在局部作用域、闭包外层作用域、当前模块全局作用域中均未找到对应的名字,解释器便会在内置作用域中检索。如果我们在代码中不慎将自定义变量命名为str = "hello"或list = [1, 2],就会产生“变量遮蔽(Shadowing)”,导致后续正常的list()类型转换调用抛出TypeError异常。

Python内置函数速查表:68个Built-in Functions参数与用法汇总
图 1:Python 解释器 LEGB 变量检索顺序与内置作用域承载机制

二、68个内置函数功能分类全景架构

Python 官方维护的 68 个内置函数并非随意罗列,而是按照软件开发的基础需求,严谨划分为 6 大核心功能体系。掌握这 6 大模块的分类逻辑,可以帮助开发者在编写逻辑时迅速定位最贴合的底层原生函数,避免重复造轮子。

Python内置函数速查表:68个Built-in Functions参数与用法汇总
图 2:Python 68 个内置函数六大模块功能架构全景分类

三、68个内置函数完整参数与用法速查表

1. 数学与数值运算类(8个)

函数签名 主要参数说明 返回值类型 核心功能与实用示例
abs(x) x:数值或实现 __abs__() 的对象 数值(正数/零) 返回绝对值;复数返回模长。abs(-7.5) -> 7.5;abs(3+4j) -> 5.0
divmod(a, b) a, b:非复数数值 tuple (商, 余数) 同时计算整除与求模,等价于 (a // b, a % b)。divmod(14, 3) -> (4, 2)
max(arg1, arg2, *args, [key, default]) 可迭代对象或多个参数;key 为排序函数,default 为空容器缺省值 元素类型 返回最大值。max([1, 9, 3]) -> 9;max([], default=0) -> 0
min(arg1, arg2, *args, [key, default]) 同 max 元素类型 返回最小值。min(['apple', 'go'], key=len) -> 'go'
pow(base, exp, [mod]) base 底数,exp 指数,可选 mod 取模 数值 高效幂运算。提供模数时执行三元幂模 (base ** exp) % mod,性能优于直接求模。
round(number, [ndigits]) number 浮点数/整数;ndigits 保留小数位数 int 或 float 按“四舍六入五成双”(银行家舍入法)进行精度舍入。round(2.5) -> 2, round(3.5) -> 4
sum(iterable, /, start=0) iterable 数值序列;start 起始累加值 数值 自左向右对项求和。不可用于拼接字符串序列(应使用 ''.join())。
complex([real, [imag]]) real 实部,imag 虚部(支持字符串解析) complex 构造复数。complex(2, 3) -> (2+3j);complex('1+2j') 字符串中间不能含空格。

2. 类型转换与基础数据构造(14个)

函数签名 主要参数说明 返回值类型 核心功能与实用示例
bool([x]) x:待求真值的任意表达式 bool 转换为布尔值 True 或 False。零、空容器、None 均转为 False。
int(x=0, [base]) x 数字或字符串;base 进制(2~36) int 截断浮点取整或按进制解析。int('1010', 2) -> 10;int('ff', 16) -> 255
float([x]) x 数字或字符串 float 转为双精度浮点数。支持特殊字面量:float('inf'), float('nan')。
str(object='') object 对象,encoding, errors 用于字节转码 str 返回对象的友好文本形式;或将 bytes 解码为字符串。
list([iterable]) iterable 可迭代对象 list 创建可变列表。若不给参数则创建空列表 []。
tuple([iterable]) iterable 可迭代对象 tuple 创建不可变元组。常用于固化可迭代序列保证数据防篡改。
set([iterable]) iterable 元素必须为可哈希对象 set 创建无序不重复元素集。常用作数据去重与集合交并差运算。
frozenset([iterable]) iterable 元素需可哈希 frozenset 创建不可变集合。由于自身不可变且可哈希,可用作字典的键或嵌套于集合中。
dict(**kwargs) 映射对象、键值对序列或关键字实参 dict 构造哈希表字典。dict(a=1, b=2) 或 dict([('x', 10), ('y', 20)])。
bytes([source, [encoding, errors]]) 整数、字符串(需传编码)或字节序列 bytes 构造不可变字节序列。bytes('中文', 'utf-8') -> b'\xe4\xb8\xad\xe6\x96\x87'
bytearray([source]) 参数规格与 bytes 一致 bytearray 构造可变二进制字节数组,支持就地切片赋值与 append 等修改操作。
memoryview(obj) 支持缓冲区协议(Buffer Protocol)的对象 memoryview 创建内存视图,允许在不进行内存拷贝(Zero-copy)的情况下切片和访问原始字节缓冲区。
slice(stop) / slice(start, stop, [step]) 起始索引、终止边界、步长 slice 创建切片对象。等价于扩展索引语法 obj[start:stop:step],便于复用切片规则。
object() 无参数 object 返回所有类的最终基类新实例。由于不具备 __dict__,常作为全局唯一哨兵标识(Sentinel)。

3. 序列、迭代与流操作(14个)

函数签名 主要参数说明 返回值类型 核心功能与实用示例
len(s) s 序列或映射 int 获取容器元素数量,底层直接调用对象的 __len__(),时间复杂度通常为 O(1)。
range(stop) / (start, stop, [step]) 整型起始点、终止界限、步长 range 对象 生成惰性不可变整数序列。内存消耗恒定,不会一次性在内存中展开列表。
enumerate(iterable, start=0) iterable 序列;start 起始索引计数值 enumerate 迭代器 在遍历时同时生成 (index, item) 元组,避免使用 i = 0; i += 1 计数。
zip(*iterables, strict=False) 一个或多个可迭代对象;strict 为 Python 3.10+ 新增 zip 迭代器 并行打包元组。开启 strict=True 时,若各输入长度不一致将抛出 ValueError。
map(function, iterable, ...) 处理函数与一个或多个序列 map 迭代器 对序列中每个元素惰性应用函数变换。list(map(int, ['1', '2'])) -> [1, 2]
filter(function, iterable) 判断函数(可为 None)与序列 filter 迭代器 筛选出使 function(item) 返回真值的元素。函数传 None 时过滤虚值。
sorted(iterable, /, *, key=None, reverse=False) 待排序容器;key 排序字段;reverse 降序 list 返回全新的已排序列表(保证稳定排序),原容器数据结构保持不变。
reversed(seq) 实现 __reversed__() 或具有长度和序列协议的对象 reversed 迭代器 反向迭代序列元素,惰性求值不占用重复内存。
all(iterable) iterable 待判断序列 bool 若所有元素求真结果均为 True 则返回 True;对空集合直接返回 True(Vacuous Truth)。
any(iterable) iterable 待判断序列 bool 只要存在任意一个真值元素即短路返回 True;若容器为空返回 False。
iter(object, [sentinel]) 对象,或支持可调用的哨兵模式 迭代器 获取迭代器。双参数形态 iter(callable, sentinel) 会循环调用直到返回值等于哨兵值退出。
next(iterator, [default]) 迭代器;可选 default 缺省值 元素类型 驱动迭代器取出下一项。迭代耗尽时若无 default 则抛出 StopIteration。
aiter(async_iterable) 异步可迭代对象(实现 __aiter__) 异步迭代器 Python 3.10+ 新增。获取异步迭代器,等价于调用 x.__aiter__()。
anext(async_iterator, [default]) 异步迭代器与可选缺省值 Awaitable 对象 Python 3.10+ 新增。await anext(ait),取出异步迭代下一项,耗尽触发 StopAsyncIteration。

4. 对象属性与反射内省(12个)

函数签名 主要参数说明 返回值类型 核心功能与实用示例
type(object) / (name, bases, dict) 单参数传对象;三参数传类名、基类元组、命名空间 type / 新类 单参数获取对象类型;三参数在运行时动态创建类。MyClass = type('MyClass', (), {})
id(object) 任意 Python 实体 int 返回对象生命周期内唯一的整数内存标识(CPython 实现中即为对象底层内存指针地址)。
hash(object) 需为不可变且实现 __hash__() 的对象 int 返回哈希值。字典与集合利用此值进行哈希桶索引。不可变对象才具备哈希值。
callable(object) 任意对象 bool 检查对象是否可以被调用(如函数、类,或实现了 __call__() 方法的类实例)。
isinstance(object, classinfo) object 实例;classinfo 类或类元组 bool 判断对象是否属于该类或其子类实例。支持联合类型如 isinstance(x, (int, float))。
issubclass(class, classinfo) class 目标类;classinfo 父类或元组 bool 判断一个类是否是另一个类(或元组中任一类)的直接或间接衍生子类。
hasattr(object, name) object 对象;name 字符串属性名 bool 检查对象是否具备指定属性。底层通过调用 getattr 捕获 AttributeError 实现。
getattr(object, name, [default]) 对象、属性字符串、未找到时的缺省回退值 属性值 动态反射获取对象属性。未找到且无 default 时抛出 AttributeError。
setattr(object, name, value) 对象、属性名称字符串、赋值内容 None 动态为对象添加或重写属性值,等价于 object.name = value。
delattr(object, name) 对象、属性名称字符串 None 动态删除对象的指定属性,等价于 del object.name。
dir([object]) 可选对象 list[str] 无参时返回当前局部作用域名称列表;传参时返回该对象所有有效属性及方法名称。
vars([object]) 模块、类、实例等具有 __dict__ 的对象 dict 无参返回 locals() 字典;传参返回该对象的属性字典 object.__dict__。

5. 输入输出、类修饰与环境作用域(10个)

函数签名 主要参数说明 返回值类型 核心功能与实用示例
open(file, mode='r', buffering=-1, encoding=None, ...) 文件路径、读写模式(r/w/a/b)、字符编码等 文件流 IO 对象 打开文件并返回对应流对象。文本读写建议显式指定 encoding='utf-8',搭配 with 使用。
print(*objects, sep=' ', end='\n', file=None, flush=False) 输出项、分隔符、结尾字符、目标流、刷新缓冲 None 格式化输出至标准输出流(sys.stdout)。传 flush=True 强制即时刷新底层缓冲。
input([prompt]) 终端交互输入提示文本 str 暂停程序并阻塞等待终端读取一行文本,自动剥离末尾换行符。
format(value, [format_spec]) 待格式化数值或对象;规范指示符 str 按规范格式化。format(1234.567, ',.2f') -> '1,234.57';format(255, '08b') -> '11111111'
globals() 无参数 dict 返回代表当前模块全局符号表的真实字典,修改该字典内容会直接影响全局变量。
locals() 无参数 dict 更新并返回当前局部符号表字典。在函数内修改 locals() 并不保证能同步更改局部变量。
super([type, [object-or-type]]) 当前类型定义与目标实例 代理对象 按方法解析顺序(MRO)动态委派父类方法调用。单继承中常见形式为 super().__init__()。
property(fget=None, fset=None, fdel=None, doc=None) Getter、Setter、Deleter 函数及文档 property 属性 构造属性描述符。最常用作 @property 装饰器,使方法可以像常规属性一样被访问与设值。
classmethod(function) 方法函数 类方法对象 装饰器。将方法转换为类方法,隐式接收当前类本身作为第一个形参 cls。
staticmethod(function) 方法函数 静态方法对象 装饰器。将方法转换为静态方法,不隐式接收实例 self 或类 cls 参数。

6. 编码、动态执行与调试帮助(10个)

函数签名 主要参数说明 返回值类型 核心功能与实用示例
repr(object) 任意对象 str 返回面向开发者的规范字符串表达式,通常要求 eval(repr(obj)) == obj。
ascii(object) 任意对象 str 类似于 repr(),但会将所有非 ASCII 字符转义为 \x、\u 或 \U 字符序列。
ord(c) 单字符 Unicode 字符串 int 返回对应字符的 Unicode 码点整数。ord('A') -> 65;ord('中') -> 20013
chr(i) Unicode 整数码点(0 ~ 1,114,111) str 返回整数码点对应的单个字符,与 ord() 互为逆运算。chr(65) -> 'A'
bin(x) 整数 str 转换为带 0b 前缀的二进制字符串。bin(10) -> '0b1010'
hex(x) 整数 str 转换为带 0x 前缀的小写十六进制字符串。hex(255) -> '0xff'
oct(x) 整数 str 转换为带 0o 前缀的八进制字符串。oct(8) -> '0o10'
compile(source, filename, mode, ...) 源代码字符串/AST、虚拟文件名、模式(exec/eval/single) 代码对象 code object 将代码编译为 Python 字节码,可被 exec() 或 eval() 高性能重复执行。
eval(expression, [globals, locals]) 单一表达式字符串、命名空间字典 表达式求值结果 动态计算单一 Python 表达式并返回结果。严禁用于执行未经审计的外部用户输入。
exec(object, [globals, locals]) 多行代码字符串或编译代码对象 None 动态执行大段 Python 复合语句(含循环、函数、类定义)。
breakpoint(*args, **kws) 任意转发给调试器的参数 None Python 3.7+ 引入的内建断点触发函数,默认调用 sys.breakpointhook() 呼起 PDB。
help([object]) 模块、函数、类、方法或无参 None 呼起内置交互式帮助系统,或在控制台格式化打印指定对象的 docstring 帮助文档。

四、日常编码中的内置函数选型决策步骤

在面对具体业务需求时,选择最贴合的内置函数不仅能精简代码量,还能利用底层的 C 实现提升运行速度。下图展示了在面对常见数据流处理、状态校验和类型判断时的判定决策路径。

Python内置函数速查表:68个Built-in Functions参数与用法汇总
图 3:基于业务目标维度的内置函数决策判定与核心代码原则

五、常见高频避坑要点与典型错误分析

1. 命名覆盖遮蔽内置函数(Shadowing Builtins)

初学者在定义变量名时,极易使用 list、dict、str、type 等作为普通变量名。例如:

# 错误示范:覆盖了内置的 list 构造函数
list = [10, 20, 30]

# 后续代码如果需要将元组转成列表:
new_data = list((40, 50))  # 抛出 TypeError: 'list' object is not callable

规避方法:若变量必须使用类型含义,可采用 item_list、user_dict 或 PEP 8 推荐的末尾单下划线 list_ 命名风格。若意外覆盖,可通过 del list 从全局符号表中将其移除以恢复内置函数访问。

2. round() 的“四舍六入五成双”机制

Python 3 中的 round() 函数采用 IEEE 754 标准推荐的偶数舍入算法(Round half to even),并非数学初学者所熟知的传统“四舍五入”。

print(round(2.5))  # 输出 2 (靠近更近的偶数 2)
print(round(3.5))  # 输出 4 (靠近更近的偶数 4)
print(round(1.5))  # 输出 2

注意事项:在金融结算、计费对账等对舍入精度有严格规定的场景下,应使用标准库 decimal.Decimal 配合明确的 ROUND_HALF_UP 上舍入模式,避免直接使用 round() 引发微小的系统累积偏差。

3. all() 与 any() 对空可迭代对象的真值陷阱

对空列表、空元组调用 all() 和 any() 时,其结果在逻辑学上符合“空虚真(Vacuous Truth)”定义,但在业务逻辑中经常造成隐形判定错误:

# 场景:检查所有用户权限是否均已通过
permissions = []
print(all(permissions))  # 输出 True!因为“不存在一个不满足条件的项”
print(any(permissions))  # 输出 False!因为“没有任一项满足条件”

防范措施:在对条件集合执行 all() 前,若业务要求“必须存在至少一个有效记录且全部满足”,应当显式增加非空前置校验:bool(permissions) and all(permissions)。

4. 惰性求值(Lazy Evaluation)的单次消耗特性

map()、filter()、zip() 和 reversed() 在 Python 3 中均返回惰性迭代器(Iterator),而非具体的列表。

numbers = [1, 2, 3, 4]
res = map(lambda x: x * 2, numbers)

print(list(res))  # 输出 [2, 4, 6, 8]
print(list(res))  # 输出 [] !迭代器已被耗尽,再次读取直接返回空

设计建议:如果后续逻辑需要多次循环消费处理结果,必须在生成后使用 list() 或 tuple() 显式固化;若数据规模达百万级且仅需线性流式处理一遍,则直接传递迭代器以节省内存占用。

六、Python内置函数核心体系总结与速查脑图

通过系统性掌握 Python 这 68 个底层内置工具,编写代码时能够更深入地契合 Pythonic 思想。下图针对常用核心函数、执行流关系及设计哲学进行了总体归纳。

Python内置函数速查表:68个Built-in Functions参数与用法汇总
图 4:Python 内置函数四大支柱实践模型与核心架构归纳
相关专题:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。