Python 内置函数
Python 内置函数是语言核心提供的一组高效、稳定且可直接调用的函数,无需导入任何模块即可使用。这些函数覆盖了数据结构操作、算法实现、对象管理、类型转换和错误处理等核心功能。它们的重要性在于显著提升开发效率,减少冗余代码,并确保遵循统一的最佳实践。在软件开发过程中,尤其是后端开发,内置函数可以帮助开发者快速实现常见功能,如集合操作、字符串处理、数值运算和对象序列化。同时,内置函数与 Python 的 OOP 原则紧密结合,使得类、对象和迭代器能够无缝地与这些函数协作。通过深入理解其语法、与数据结构和算法的关系,以及在内存管理与性能优化中的应用,学习者将能够在系统架构和后端逻辑中高效地集成这些工具,从而避免内存泄漏、低效算法和错误处理不足的问题。
以下示例展示了如何在实际场景中利用 Python 内置函数提高代码的简洁性和健壮性。假设我们正在处理一个电商系统的订单数据,需要统计订单金额、筛选高价值客户,并保证结果的稳定性。我们可以利用 sum
来快速计算总额,用 max
和 min
获取边界值,借助 sorted
和 filter
优化数据筛选,再结合 any
或 all
验证业务规则。该示例不仅展示了内置函数如何与数据结构(列表、字典)结合,还强调了如何避免编写低效循环和冗余判断。在后端开发中,这种模式广泛用于日志分析、报表统计、用户行为追踪等高并发场景,保证系统在高负载下依然高效、可维护。通过掌握这些函数,开发者可以将复杂问题拆解为更小的函数调用单元,实现简洁而鲁棒的代码逻辑。
Example
python# 示例:电商订单处理,使用多个内置函数
orders = \[
{"user": "Alice", "amount": 120},
{"user": "Bob", "amount": 80},
{"user": "Charlie", "amount": 200},
{"user": "David", "amount": 50}
]
# 使用 sum 获取总金额
total = sum(order\["amount"] for order in orders)
# 使用 max/min 获取最大最小订单
highest = max(orders, key=lambda o: o\["amount"])
lowest = min(orders, key=lambda o: o\["amount"])
# 使用 filter 筛选高价值客户
vip_orders = list(filter(lambda o: o\["amount"] >= 100, orders))
# 使用 sorted 排序
sorted_orders = sorted(orders, key=lambda o: o\["amount"], reverse=True)
# 使用 any 检查是否存在大额订单
has_big_order = any(o\["amount"] > 150 for o in orders)
print("总金额:", total)
print("最大订单:", highest)
print("最小订单:", lowest)
print("VIP 客户订单:", vip_orders)
print("排序后订单:", sorted_orders)
print("是否存在大额订单:", has_big_order)
📊 Comprehensive Reference
函数 | 描述 | 语法 | 示例 | 备注 |
---|---|---|---|---|
abs | 返回数字的绝对值 | abs(x) | abs(-5) → 5 | 适用于整型和浮点型 |
all | 检查可迭代对象是否所有元素为真 | all(iterable) | all(\[1, True, 3]) → True | 空序列返回 True |
any | 检查可迭代对象是否有任一元素为真 | any(iterable) | any(\[0, False, 5]) → True | 空序列返回 False |
ascii | 返回对象的可打印表示 | ascii(obj) | ascii("汉字") → "'\u6c49\u5b57'" | 主要用于调试 |
bin | 将整数转为二进制字符串 | bin(x) | bin(5) → '0b101' | 结果为字符串 |
bool | 转换为布尔值 | bool(x) | bool("") → False | 遵循 Python 真值规则 |
bytearray | 创建可变字节数组 | bytearray(\[1,2,3]) | list(bytearray(b"abc")) | 用于二进制数据处理 |
bytes | 创建不可变字节序列 | bytes("abc","utf-8") | b"abc" | 常用于网络传输 |
callable | 检查对象是否可调用 | callable(obj) | callable(len) → True | 判断函数或实现 call 的对象 |
chr | 返回 Unicode 码点对应字符 | chr(i) | chr(65) → 'A' | 与 ord 相反 |
classmethod | 定义类方法 | @classmethod | class C: @classmethod def f(cls): pass | 绑定到类而非实例 |
compile | 编译字符串为代码对象 | compile(source, filename, mode) | exec(compile("print(5)","","exec")) | 常与 eval/exec 一起用 |
complex | 创建复数 | complex(real, imag) | complex(2,3) → (2+3j) | 支持字符串参数 |
delattr | 删除对象属性 | delattr(obj, name) | delattr(o,"x") | 等价于 del o.x |
dict | 创建字典 | dict(a=1,b=2) | {"a":1,"b":2} | 常用于结构化数据 |
dir | 列出对象属性 | dir(obj) | dir(\[]) | 用于调试或反射 |
divmod | 同时返回商和余数 | divmod(a, b) | divmod(7,3) → (2,1) | 比 (a//b,a%b) 更快 |
enumerate | 返回带索引的迭代器 | enumerate(iterable) | list(enumerate(\["a","b"])) | 常用于循环 |
eval | 执行字符串表达式 | eval(expr) | eval("3+5") → 8 | 注意安全风险 |
exec | 执行动态代码 | exec(obj) | exec("x=5") | 适合动态逻辑 |
filter | 基于函数过滤序列 | filter(func, iterable) | list(filter(lambda x:x>0,\[-1,2])) | 返回迭代器 |
float | 转换为浮点数 | float(x) | float("3.14") → 3.14 | 支持字符串 |
format | 格式化字符串 | format(value, format_spec) | format(255,"x") → 'ff' | 等价于 str.format |
frozenset | 不可变集合 | frozenset(iterable) | frozenset(\[1,2,3]) | 可作为字典键 |
getattr | 获取对象属性 | getattr(obj,name\[,default]) | getattr(str,"upper") | 避免 AttributeError |
globals | 返回全局命名空间 | globals() | globals()\["name"] | 调试常用 |
hasattr | 检查对象是否有属性 | hasattr(obj,name) | hasattr(\[], "append") → True | 常用于反射 |
hash | 返回对象哈希值 | hash(obj) | hash("abc") | 不可哈希对象报错 |
help | 交互式帮助 | help(obj) | help(len) | 仅交互环境有效 |
hex | 转十六进制字符串 | hex(x) | hex(255) → '0xff' | 常用于调试 |
id | 返回对象唯一标识 | id(obj) | id(123) | 对象生命周期相关 |
input | 用户输入 | input(prompt) | input("Name:") | 仅交互式使用 |
int | 转换为整数 | int(x) | int("10") → 10 | 支持进制参数 |
isinstance | 检查对象是否为某类 | isinstance(obj,cls) | isinstance(5,int) → True | 支持多类 |
issubclass | 检查类继承关系 | issubclass(C,D) | issubclass(bool,int) | 返回 True |
iter | 获取迭代器 | iter(obj) | iter(\[1,2,3]) | 支持自定义迭代协议 |
len | 返回长度 | len(obj) | len(\[1,2,3]) → 3 | 适用于容器 |
list | 创建列表 | list(iterable) | list("abc") → \["a","b","c"] | 类型转换常用 |
locals | 返回局部命名空间 | locals() | locals()\["x"] | 调试常用 |
map | 对序列应用函数 | map(func,iterable) | list(map(str,\[1,2])) | 返回迭代器 |
max | 返回最大值 | max(iterable) | max(\[1,3,2]) → 3 | 支持 key 参数 |
memoryview | 内存视图对象 | memoryview(obj) | memoryview(b"abc")\[0] | 处理大数据效率高 |
min | 返回最小值 | min(iterable) | min(\[1,3,2]) → 1 | 支持 key 参数 |
next | 获取迭代器下一个元素 | next(iterator\[,default]) | next(iter(\[1,2])) | 可指定默认值 |
object | 创建基础对象 | object() | o=object() | 所有类的基类 |
oct | 转八进制字符串 | oct(x) | oct(8) → '0o10' | 调试常用 |
open | 打开文件 | open(file,mode) | open("a.txt","w") | 需关闭文件 |
ord | 返回字符 Unicode 码点 | ord(c) | ord("A") → 65 | 与 chr 相反 |
pow | 幂运算 | pow(x,y\[,mod]) | pow(2,3) → 8 | 支持取模 |
输出 | print(obj) | print("Hello") | 支持多参数 | |
property | 定义属性 | property(fget,fset) | class C: x=property(...) | 常用于封装 |
range | 生成整数序列 | range(start,stop,step) | list(range(3)) → \[0,1,2] | 常用于循环 |
repr | 返回对象字符串表示 | repr(obj) | repr(\[1,2]) | 调试常用 |
reversed | 反向迭代 | reversed(seq) | list(reversed(\[1,2])) → \[2,1] | 返回迭代器 |
round | 四舍五入 | round(x\[,n]) | round(3.14159,2) → 3.14 | n 可选 |
set | 创建集合 | set(iterable) | set(\[1,2,2]) → {1,2} | 去重常用 |
setattr | 设置属性 | setattr(obj,name,value) | setattr(o,"x",5) | 等价于 o.x=5 |
slice | 创建切片对象 | slice(start,stop,step) | \[1,2,3]\[slice(1,3)] | 常用于序列 |
sorted | 返回排序列表 | sorted(iterable) | sorted(\[3,1,2]) → \[1,2,3] | 支持 key |
staticmethod | 定义静态方法 | @staticmethod | class C: @staticmethod def f(): pass | 绑定类而非实例 |
str | 创建字符串 | str(obj) | str(123) → '123' | 类型转换常用 |
sum | 序列求和 | sum(iterable\[,start]) | sum(\[1,2,3]) → 6 | 适用于数值 |
super | 调用父类方法 | super() | super().method() | OOP 常用 |
tuple | 创建元组 | tuple(iterable) | tuple("ab") → ("a","b") | 不可变序列 |
type | 返回对象类型或创建类 | type(obj) | type(5) → int | 动态元类 |
vars | 返回对象属性字典 | vars(obj) | vars(str) | 调试常用 |
zip | 并行迭代 | zip(*iterables) | list(zip(\[1,2],\[3,4])) | 返回迭代器 |
import | 动态导入模块 | import("os") | import("math").sqrt(4) | 不推荐直接使用 |
📊 Complete Properties Reference
函数 | 返回类型 | 默认行为 | 描述 | 兼容性 |
---|---|---|---|---|
abs | int/float | 返回绝对值 | 计算数值的绝对值 | 所有版本 |
all | bool | 空序列返回 True | 检查可迭代对象是否所有元素为真 | 所有版本 |
any | bool | 空序列返回 False | 检查可迭代对象是否存在真值 | 所有版本 |
ascii | str | 返回转义字符串 | 显示对象的 ASCII 表示 | Python3+ |
bin | str | 返回带 0b 前缀 | 整数转二进制 | 所有版本 |
bool | bool | 遵循真值规则 | 转换为布尔值 | 所有版本 |
bytearray | bytearray | 可变序列 | 创建字节数组 | 所有版本 |
bytes | bytes | 不可变序列 | 创建字节对象 | 所有版本 |
callable | bool | 检查可调用性 | 判断对象是否可调用 | 所有版本 |
chr | str | Unicode 字符 | 返回码点对应字符 | 所有版本 |
classmethod | classmethod | 绑定类 | 定义类方法 | 所有版本 |
compile | code | 编译对象 | 编译字符串为代码 | 所有版本 |
complex | complex | (0+0j) | 创建复数 | 所有版本 |
delattr | None | 删除属性 | 移除对象属性 | 所有版本 |
dict | dict | {} | 创建字典 | 所有版本 |
dir | list | 属性名列表 | 列出对象属性 | 所有版本 |
divmod | tuple | (商,余数) | 同时返回整除结果 | 所有版本 |
enumerate | enumerate | 返回迭代器 | 生成索引+值对 | 所有版本 |
eval | 结果类型 | 执行表达式 | 计算字符串表达式 | 所有版本 |
exec | None | 执行代码 | 动态执行 Python 代码 | 所有版本 |
filter | filter | 迭代器 | 过滤序列 | 所有版本 |
float | float | 0.0 | 转换为浮点数 | 所有版本 |
format | str | 格式化结果 | 格式化对象 | 所有版本 |
frozenset | frozenset | 不可变集合 | 创建不可变集合 | 所有版本 |
getattr | 属性值/默认 | 默认值可选 | 获取对象属性 | 所有版本 |
globals | dict | 全局作用域 | 返回全局变量字典 | 所有版本 |
hasattr | bool | 检查属性存在性 | 判断对象是否有属性 | 所有版本 |
hash | int | 对象哈希 | 返回对象哈希值 | 所有版本 |
help | None | 交互式输出 | 帮助文档 | 所有版本 |
hex | str | 0x 前缀 | 整数转十六进制 | 所有版本 |
id | int | 对象标识 | 返回对象内存地址 | 所有版本 |
input | str | 读取输入 | 获取用户输入 | 所有版本 |
int | int | 0 | 转换为整数 | 所有版本 |
isinstance | bool | 检查关系 | 对象是否属于某类 | 所有版本 |
issubclass | bool | 检查继承 | 类是否为子类 | 所有版本 |
iter | iterator | 生成迭代器 | 获取对象迭代器 | 所有版本 |
len | int | 序列长度 | 返回容器长度 | 所有版本 |
list | list | \[] | 创建列表 | 所有版本 |
locals | dict | 局部作用域 | 返回局部变量字典 | 所有版本 |
map | map | 迭代器 | 对序列应用函数 | 所有版本 |
max | 元素类型 | 取最大值 | 返回最大元素 | 所有版本 |
memoryview | memoryview | 内存视图 | 暴露字节缓冲区 | 所有版本 |
min | 元素类型 | 取最小值 | 返回最小元素 | 所有版本 |
next | 元素/默认 | 抛 StopIteration | 返回下一个元素 | 所有版本 |
object | object | 基础对象 | 新建对象 | 所有版本 |
oct | str | 0o 前缀 | 整数转八进制 | 所有版本 |
open | TextIOWrapper | 文件句柄 | 打开文件 | 所有版本 |
ord | int | Unicode 码点 | 返回字符码点 | 所有版本 |
pow | int/float | 支持模运算 | 幂运算 | 所有版本 |
None | 输出到控制台 | 打印对象 | 所有版本 | |
property | property | 定义属性 | 创建托管属性 | 所有版本 |
range | range | 迭代器 | 生成整数序列 | 所有版本 |
repr | str | 字符串表示 | 返回对象字符串 | 所有版本 |
reversed | iterator | 反向迭代 | 返回反向迭代器 | 所有版本 |
round | int/float | 四舍五入 | 取整或指定小数位 | 所有版本 |
set | set | {} | 创建集合 | 所有版本 |
setattr | None | 设置属性 | 为对象添加属性 | 所有版本 |
slice | slice | 切片对象 | 定义切片 | 所有版本 |
sorted | list | 返回新列表 | 对序列排序 | 所有版本 |
staticmethod | staticmethod | 绑定类 | 定义静态方法 | 所有版本 |
str | str | "" | 转换为字符串 | 所有版本 |
sum | int/float | start=0 | 序列求和 | 所有版本 |
super | super | 调用父类 | 获取父类对象 | 所有版本 |
tuple | tuple | () | 创建元组 | 所有版本 |
type | type | 返回类型或新类 | 获取对象类型或动态创建类 | 所有版本 |
vars | dict | 对象属性 | 返回对象 dict | 所有版本 |
zip | zip | 迭代器 | 并行迭代 | 所有版本 |
import | module | 动态导入 | 导入模块 | 所有版本 |
🧠 测试您的知识
测试你的知识
测试你对 Python 内置函数的理解
📝 说明
- 仔细阅读每个问题
- 为每个问题选择最佳答案
- 您可以随时重新参加测验
- 您的进度将显示在顶部