正在加载...

Python 内置函数

Python 内置函数是语言核心提供的一组高效、稳定且可直接调用的函数,无需导入任何模块即可使用。这些函数覆盖了数据结构操作、算法实现、对象管理、类型转换和错误处理等核心功能。它们的重要性在于显著提升开发效率,减少冗余代码,并确保遵循统一的最佳实践。在软件开发过程中,尤其是后端开发,内置函数可以帮助开发者快速实现常见功能,如集合操作、字符串处理、数值运算和对象序列化。同时,内置函数与 Python 的 OOP 原则紧密结合,使得类、对象和迭代器能够无缝地与这些函数协作。通过深入理解其语法、与数据结构和算法的关系,以及在内存管理与性能优化中的应用,学习者将能够在系统架构和后端逻辑中高效地集成这些工具,从而避免内存泄漏、低效算法和错误处理不足的问题。

以下示例展示了如何在实际场景中利用 Python 内置函数提高代码的简洁性和健壮性。假设我们正在处理一个电商系统的订单数据,需要统计订单金额、筛选高价值客户,并保证结果的稳定性。我们可以利用 sum 来快速计算总额,用 maxmin 获取边界值,借助 sortedfilter 优化数据筛选,再结合 anyall 验证业务规则。该示例不仅展示了内置函数如何与数据结构(列表、字典)结合,还强调了如何避免编写低效循环和冗余判断。在后端开发中,这种模式广泛用于日志分析、报表统计、用户行为追踪等高并发场景,保证系统在高负载下依然高效、可维护。通过掌握这些函数,开发者可以将复杂问题拆解为更小的函数调用单元,实现简洁而鲁棒的代码逻辑。

Example

python
PYTHON Code
# 示例:电商订单处理,使用多个内置函数

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 输出 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 支持模运算 幂运算 所有版本
print 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 内置函数的理解

3
问题
🎯
70%
及格要求
♾️
时间
🔄
尝试次数

📝 说明

  • 仔细阅读每个问题
  • 为每个问题选择最佳答案
  • 您可以随时重新参加测验
  • 您的进度将显示在顶部