Python 提供了许多内置函数(Built-in Functions),这些函数可以直接调用,无需导入任何模块。以下是 Python 3.x 中常用的内置函数分类整理:
1. 数学运算
abs(x):返回绝对值。divmod(a, b):返回(a // b, a % b)的元组。max(iterable, *[, key, default])/min(...):返回最大/最小值。pow(x, y[, z]):返回x^y % z(如果提供z)。round(number[, ndigits]):四舍五入到ndigits位小数。sum(iterable[, start]):求和,可指定起始值start。bin(x)/oct(x)/hex(x):将整数转换为二进制/八进制/十六进制字符串。
2. 类型转换
bool(x):转换为布尔值。int(x[, base]):转换为整数(可指定进制)。float(x):转换为浮点数。str(obj):转换为字符串。list(iterable)/tuple(iterable)/set(iterable)/dict(...):转换为对应类型。chr(i)/ord(c):字符与 Unicode 码点互转。frozenset(iterable):返回不可变集合。
3. 迭代与可迭代对象
iter(iterable[, sentinel]):返回迭代器对象。next(iterator[, default]):获取下一个元素。enumerate(iterable[, start]):返回(index, value)元组的迭代器。zip(*iterables):将多个迭代器聚合成元组迭代器。filter(function, iterable):过滤元素。map(function, iterable, ...):对每个元素应用函数。sorted(iterable[, key, reverse]):返回排序后的列表。reversed(sequence):返回反向迭代器。any(iterable)/all(iterable):检查是否有任意/所有元素为真。
4. 对象与反射
len(s):返回容器长度。type(obj):返回对象类型。isinstance(obj, classinfo):检查对象是否属于指定类型。issubclass(class, classinfo):检查类是否为另一个类的子类。dir([obj]):返回对象的属性和方法列表。hasattr(obj, name)/getattr(obj, name[, default])/setattr(obj, name, value)/delattr(obj, name):操作对象属性。callable(obj):检查对象是否可调用。id(obj):返回对象的唯一标识符。hash(obj):返回对象的哈希值。
5. 输入输出
print(*objects, sep=' ', end='\n', file=sys.stdout):打印输出。input([prompt]):读取用户输入。open(file, mode='r', ...):打开文件并返回文件对象。
6. 作用域与执行
globals()/locals():返回全局/局部符号表。eval(expression[, globals, locals]):执行字符串表达式并返回结果。exec(object[, globals, locals]):动态执行 Python 代码。compile(source, filename, mode):将字符串编译为代码对象。
7. 其他实用函数
len(s):返回容器长度。range(stop)/range(start, stop[, step]):生成不可变序列。slice(start, stop[, step]):创建切片对象。super([type[, object-or-type]]):调用父类方法。classmethod/staticmethod:装饰器,定义类/静态方法。property(fget=None, fset=None, fdel=None, doc=None):属性装饰器。format(value[, format_spec]):格式化值。repr(obj):返回对象的官方字符串表示(用于调试)。bytes(x)/bytearray(x):处理二进制数据。memoryview(obj):创建内存视图对象。ascii(obj):返回包含 ASCII 转义字符的字符串。breakpoint(*args, **kws):调试时进入 PDB(Python 3.7)
示例代码
# 数学运算
print(abs(-5)) # 输出: 5
print(divmod(7, 3)) # 输出: (2, 1)
# 类型转换
print(int("10", 2)) # 输出: 2(二进制转十进制)
# 迭代操作
names = ["Alice", "Bob"]
for i, name in enumerate(names, start=1):
print(i, name) # 输出: 1 Alice, 2 Bob
# 高阶函数
nums = [1, 2, 3]
squared = map(lambda x: x**2, nums)
print(list(squared)) # 输出: [1, 4, 9]
# 反射
class Test:
def __init__(self, x):
self.x = x
obj = Test(10)
print(hasattr(obj, "x")) # 输出: True
注意事项
- 内置函数是 Python 解释器提供的核心功能,无需导入。
- 部分函数(如
open()、eval())需谨慎使用,避免安全风险。 - 文档参考:Python 官方文档。