【Python 内置函数】
Python 内置函数是语言核心功能的直接体现,无需导入即可使用。以下是精选的 10 大类、50+ 核心内置函数详解,涵盖日常开发高频场景:
一、数据类型转换
函数 | 示例 | 说明 |
---|---|---|
int() | int("123") → 123 | 字符串/浮点数转整数 |
float() | float("3.14") → 3.14 | 字符串/整数转浮点数 |
str() | str(42) → “42” | 任意类型转字符串 |
bool() | bool(0) → False | 0/None/空序列转False,其他True |
list() | list("abc") → [‘a’,‘b’,‘c’] | 可迭代对象转列表 |
tuple() | tuple([1,2,3]) → (1,2,3) | 可迭代对象转元组 |
dict() | dict([('a',1)]) → {‘a’:1} | 键值对序列转字典 |
set() | set([1,1,2]) → {1,2} | 可迭代对象转集合(去重) |
二、数学运算
函数 | 示例 | 说明 |
---|---|---|
abs() | abs(-5) → 5 | 绝对值 |
round() | round(3.1415, 2) → 3.14 | 四舍五入 |
max() | max(3,5,1) → 5 | 最大值(支持多参数/可迭代对象) |
min() | min([4,2,7]) → 2 | 最小值 |
sum() | sum([1,2,3]) → 6 | 求和 |
pow() | pow(2,3) → 8 | 幂运算(等价于2**3) |
divmod() | divmod(10,3) → (3,1) | 返回商和余数的元组 |
三、序列操作
函数 | 示例 | 说明 |
---|---|---|
len() | len([1,2,3]) → 3 | 序列/集合长度 |
sorted() | sorted([3,1,2]) → [1,2,3] | 返回排序后的新列表 |
reversed() | list(reversed([1,2,3])) → [3,2,1] | 反向迭代器 |
enumerate() | list(enumerate(['a','b'])) → [(0,‘a’),(1,‘b’)] | 枚举索引和值 |
zip() | list(zip([1,2], ['a','b'])) → [(1,‘a’),(2,‘b’)] | 合并多个序列 |
slice() | s = slice(1,5); [0,1,2,3,4][s] → [1,2,3,4] | 切片对象 |
四、函数工具
函数 | 示例 | 说明 |
---|---|---|
map() | list(map(str.upper, ['a','b'])) → [‘A’,‘B’] | 映射函数到序列 |
filter() | list(filter(lambda x:x%2==0, [1,2,3])) → [2] | 过滤序列元素 |
reduce() | from functools import reduce; reduce(lambda x,y:x+y, [1,2,3]) → 6 | 累积计算(需导入) |
lambda | lambda x: x*2 → 匿名函数 | 快速定义简单函数 |
五、对象查询
函数 | 示例 | 说明 |
---|---|---|
type() | type(42) → <class 'int'> | 返回对象类型 |
isinstance() | isinstance([], list) → True | 检查对象类型继承关系 |
dir() | dir([]) → 列表方法列表 | 返回对象属性和方法列表 |
id() | id(42) → 内存地址 | 返回对象唯一标识符 |
hash() | hash("key") → 哈希值 | 返回对象的哈希值(要求不可变) |
六、输入输出
函数 | 示例 | 说明 |
---|---|---|
print() | print("Hello") → 输出到控制台 | 基础输出函数 |
input() | input("提示:") → 用户输入 | 从标准输入读取字符串 |
open() | open('file.txt', 'r') → 文件对象 | 打开文件(需配合with使用) |
七、高级工具
函数 | 示例 | 说明 |
---|---|---|
eval() | eval("2+3") → 5 | 执行字符串表达式(谨慎使用) |
exec() | exec("print('hello')") | 执行字符串代码(谨慎使用) |
globals() | 返回全局变量字典 | 查看/修改全局作用域 |
locals() | 返回局部变量字典 | 查看/修改局部作用域 |
help() | help(list) → 显示文档 | 获取对象帮助信息 |
八、使用技巧
-
类型转换陷阱:
int("123a") # 抛出 ValueError bool([]) # 空列表转False,非空列表转True
-
性能优化:
- 优先使用
map()
/filter()
替代列表推导式处理大数据 - 避免在循环中频繁调用
len()
(预存结果)
- 优先使用
-
函数式编程:
# 组合函数 func = lambda x: x**2 processed = map(func, [1,2,3])
九、经典面试题
Q:如何交换两个变量的值?
a, b = b, a # 无需临时变量
Q:如何判断对象是否可迭代?
from collections.abc import Iterable
isinstance(obj, Iterable)
掌握这些内置函数可覆盖 80% 的日常开发需求。对于复杂场景(如高性能计算),可结合 itertools
、functools
等标准库模块进一步扩展功能。