Python3 内置函数详解
Python3 提供了大量内置函数(Built-in Functions),这些函数无需导入任何模块即可直接使用,覆盖了类型转换、数学运算、序列操作、迭代处理等多种场景,是 Python 编程的基础工具。本文按功能分类详解常用内置函数,包含语法、参数、示例及使用场景。
一、类型转换函数
用于在不同数据类型之间进行转换,是处理数据的基础工具。
| 函数 | 功能描述 | 语法 | 示例 |
|---|---|---|---|
int() |
将数据转为整数(默认十进制) | int(x, base=10) |
int("123") → 123;int("1010", 2) → 10(二进制转十进制) |
float() |
将数据转为浮点数 | float(x) |
float("3.14") → 3.14;float(5) → 5.0 |
str() |
将数据转为字符串 | str(x) |
str(123) → "123";str([1,2]) → "[1, 2]" |
bool() |
将数据转为布尔值(0/None/ 空对象为 False) | bool(x) |
bool(0) → False;bool([1]) → True |
list() |
将可迭代对象转为列表 | list(iterable) |
list((1,2,3)) → [1,2,3];list("abc") → ["a","b","c"] |
tuple() |
将可迭代对象转为元组 | tuple(iterable) |
tuple([1,2,3]) → (1,2,3) |
dict() |
创建字典(可通过键值对或映射对象) | dict(**kwargs) 或 dict(iterable) |
dict(a=1, b=2) → {"a":1, "b":2};dict([("a",1)]) → {"a":1} |
set() |
将可迭代对象转为集合(去重) | set(iterable) |
set([1,2,2,3]) → {1,2,3} |
bytes() |
将数据转为字节序列(二进制) | bytes(x, encoding="utf-8") |
bytes("中文", "utf-8") → b'\xe4\xb8\xad\xe6\x96\x87' |
二、数学运算函数
用于基本数学计算,无需导入
math模块即可使用。| 函数 | 功能描述 | 语法 | 示例 |
|---|---|---|---|
abs() |
返回数值的绝对值 | abs(x) |
abs(-5) → 5;abs(3.14) → 3.14 |
max() |
返回可迭代对象中的最大值(或多个参数的最大值) | max(iterable) 或 max(a, b, ...) |
max([1,3,2]) → 3;max(1,5,3) → 5 |
min() |
返回可迭代对象中的最小值(或多个参数的最小值) | min(iterable) 或 min(a, b, ...) |
min([1,3,2]) → 1;min(1,5,3) → 1 |
sum() |
计算可迭代对象中元素的总和(支持起始值) | sum(iterable, start=0) |
sum([1,2,3]) → 6;sum([1,2], 10) → 13 |
pow() |
计算x的y次方(可选取模) |
pow(x, y, mod=None) |
pow(2, 3) → 8;pow(2, 3, 5) → 3(8 mod 5=3) |
round() |
对数值四舍五入(保留指定小数位数) | round(x, ndigits=None) |
round(3.1415) → 3;round(3.1415, 2) → 3.14 |
三、序列 / 集合操作函数
用于处理列表、元组、字符串等可迭代对象,是数据处理的核心工具。
| 函数 | 功能描述 | 语法 | 示例 |
|---|---|---|---|
len() |
返回对象的长度(元素个数) | len(obj) |
len([1,2,3]) → 3;len("abc") → 3 |
sorted() |
对可迭代对象排序(返回新列表,不改变原对象) | sorted(iterable, key=None, reverse=False) |
sorted([3,1,2]) → [1,2,3];sorted(["b","a"], reverse=True) → ["b","a"] |
reversed() |
返回可迭代对象的反向迭代器 | reversed(seq) |
list(reversed([1,2,3])) → [3,2,1] |
all() |
若可迭代对象所有元素为 True(或空),返回 True | all(iterable) |
all([1,2,3]) → True;all([1,0,3]) → False |
any() |
若可迭代对象至少有一个元素为 True,返回 True | any(iterable) |
any([0,False,1]) → True;any([]) → False |
enumerate() |
为可迭代对象添加索引,返回(索引, 值)元组迭代器 |
enumerate(iterable, start=0) |
list(enumerate(["a","b"])) → [(0,"a"), (1,"b")] |
zip() |
将多个可迭代对象的元素按位置配对,返回元组迭代器 | zip(*iterables) |
list(zip([1,2], ["a","b"])) → [(1,"a"), (2,"b")] |
slice() |
创建切片对象(用于序列截取) | slice(start, stop, step) |
s = slice(1,4); [1,2,3,4,5][s] → [2,3,4] |
四、对象操作函数
用于检查对象类型、获取对象信息或操作对象属性。
| 函数 | 功能描述 | 语法 | 示例 |
|---|---|---|---|
type() |
返回对象的类型 | type(obj) |
type(123) → int;type([1,2]) → list |
isinstance() |
判断对象是否为指定类型(或其子类) | isinstance(obj, class_or_tuple) |
isinstance(5, int) → True;isinstance([], (list, tuple)) → True |
dir() |
返回对象的所有属性和方法列表 | dir(obj) |
dir([]) → ['append', 'clear', ...](列表的方法) |
id() |
返回对象的唯一标识符(内存地址) | id(obj) |
id(123) → 140718502485232(每次运行可能不同) |
hash() |
返回对象的哈希值(可哈希对象:int、str 等) | hash(obj) |
hash("test") → 7171021747400800475 |
getattr() |
获取对象的属性值(不存在时可选默认值) | getattr(obj, name, default) |
class A: x=1; a=A(); getattr(a, "x") → 1 |
setattr() |
设置对象的属性值 | setattr(obj, name, value) |
a=A(); setattr(a, "y", 2); a.y → 2 |
delattr() |
删除对象的属性 | delattr(obj, name) |
delattr(a, "x"); hasattr(a, "x") → False |
hasattr() |
检查对象是否有指定属性 | hasattr(obj, name) |
hasattr([], "append") → True |
五、输入输出函数
用于程序与用户的交互(输入输出)。
| 函数 | 功能描述 | 语法 | 示例 |
|---|---|---|---|
print() |
输出内容到控制台(支持多参数、分隔符、结尾符) | print(*objects, sep=' ', end='\n', file=sys.stdout) |
print("Hello", "World", sep="-") → Hello-World;print(123, end="!") → 123! |
input() |
接收用户输入(返回字符串) | input(prompt=None) |
name = input("请输入姓名:"); print(name) |
六、迭代器与高阶函数
用于处理迭代过程,或对函数进行操作(函数式编程风格)。
| 函数 | 功能描述 | 语法 | 示例 |
|---|---|---|---|
map() |
对可迭代对象的每个元素应用函数,返回迭代器 | map(function, *iterables) |
list(map(lambda x: x*2, [1,2,3])) → [2,4,6] |
filter() |
用函数过滤可迭代对象,保留返回 True 的元素 | filter(function, iterable) |
list(filter(lambda x: x%2==0, [1,2,3,4])) → [2,4] |
reduce() |
对可迭代对象累积应用函数(需从functools导入) |
reduce(function, iterable, initial) |
from functools import reduce; reduce(lambda x,y: x+y, [1,2,3]) → 6 |
iter() |
创建迭代器对象 | iter(obj) |
it = iter([1,2,3]); next(it) → 1 |
next() |
获取迭代器的下一个元素(可指定默认值) | next(iterator, default) |
next(it) → 2;next(it, "end") → 3(最后一个元素后返回 "end") |
七、其他常用函数
覆盖异常处理、内存操作等场景。
| 函数 | 功能描述 | 语法 | 示例 |
|---|---|---|---|
range() |
生成整数序列(常用于循环) | range(start, stop, step) |
list(range(5)) → [0,1,2,3,4];list(range(1,6,2)) → [1,3,5] |
open() |
打开文件(返回文件对象,需配合with使用) |
open(file, mode='r', encoding=None) |
with open("test.txt", "w") as f: f.write("hello") |
help() |
查看对象的帮助文档 | help(obj) |
help(str)(查看字符串的帮助) |
vars() |
返回对象的属性字典(类似__dict__) |
vars(obj) |
class A: x=1; a=A(); vars(a) → {}(实例无属性时为空) |
globals() |
返回当前全局变量字典 | globals() |
globals()["__name__"] → "__main__" |
locals() |
返回当前局部变量字典 | locals() |
在函数内使用:def f(): x=1; print(locals()) → {'x':1} |
exit() |
退出当前程序 | exit(code=0) |
exit(0)(正常退出);exit(1)(异常退出) |
使用建议
- 优先使用内置函数:内置函数由 C 语言实现,执行效率远高于自定义函数(如
sum()比循环累加快 10 倍以上)。 - 注意参数类型:多数函数对输入类型有要求(如
max()需可迭代对象,abs()需数值类型),否则会抛出TypeError。 - 结合文档学习:通过
help(函数名)查看详细用法(如help(sorted)了解key参数的高级用法)。 - 灵活组合使用:例如
enumerate()+zip()可同时处理多个序列的索引和值,map()+filter()可实现复杂数据转换。
掌握这些内置函数是 Python 入门的关键,它们能大幅简化代码,提高编程效率。实际开发中,80% 的基础功能可通过内置函数实现,无需额外依赖
浙公网安备 33010602011771号