2.4 Python 常用内置函数用法精要
内置函数(built-in functions, BIF)是 Python 内置对象类型之一,不需要额外导入任何模块即可直接使用。这些内置对象封装在内置模块 __builtins__
之中,由 C 语言实现并进行了大量优化,具有非常快的运行速度。因此,在编写 Python 程序时,推荐优先使用内置函数。
1. 内置函数的概述
内置函数是 Python 提供的强大工具,它们涵盖了从基础的数学运算、类型转换,到更复杂的数据处理和文件操作等方方面面的功能。通过内置函数,我们能够轻松完成许多常见的编程任务。Python 允许通过 dir(__builtins__)
来查看所有内置函数和内置对象,并且可以使用 help(函数名)
来获取某个函数的详细用法说明。
查看所有内置函数和对象
>>> dir(__builtins__)
查看某个函数的使用帮助
>>> help('math')
2. 常用内置函数及其功能简要说明
下表列出了常见的 Python 内置函数及其功能:
函数 | 功能简要说明 |
---|---|
abs(x) | 返回数字 x 的绝对值或复数 x 的模。 |
all(iterable) | 如果可迭代对象 iterable 中所有元素都为 True ,返回 True ;否则返回 False 。 |
any(iterable) | 只要可迭代对象 iterable 中存在一个元素为 True ,返回 True ;否则返回 False 。 |
ascii(obj) | 将对象转换为 ASCII 码表示形式,必要时使用转义字符表示特殊字符。 |
bin(x) | 将整数 x 转换为二进制字符串表示形式。 |
bool(x) | 返回与 x 等价的布尔值 True 或 False 。 |
bytes(x) | 生成字节串,或将指定对象 x 转换为字节串表示形式。 |
callable(obj) | 测试对象是否可调用,返回 True 或 False 。 |
chr(x) | 返回 Unicode 编码为 x 的字符。 |
dir(obj) | 返回指定对象或模块的成员列表,如果不带参数则返回当前作用域内的所有标识符。 |
divmod(x, y) | 返回包含整商和余数的元组 (x // y, x % y) 。 |
enumerate(iterable[, start]) | 返回一个枚举对象,其中包含序列元素和对应的索引,start 为索引起始值。 |
eval(s[, globals[, locals]]) | 计算并返回字符串 s 中表达式的值。 |
exec(x) | 执行代码或代码对象 x 。 |
exit() | 退出当前解释器环境。 |
filter(func, seq) | 返回过滤后的对象,其中包含序列 seq 中使得 func 返回值为 True 的那些元素。 |
float(x) | 将整数或字符串 x 转换为浮点数并返回。 |
frozenset([x]) | 创建不可变的集合对象。 |
globals() | 返回包含当前作用域内全局变量及其值的字典。 |
hash(x) | 返回对象 x 的哈希值。 |
help(obj) | 返回对象 obj 的帮助信息。 |
hex(x) | 将整数 x 转换为十六进制字符串。 |
id(obj) | 返回对象 obj 的唯一标识(内存地址)。 |
input([prompt]) | 显示提示信息,接收键盘输入的内容,返回字符串。 |
int(x[, base]) | 将 x 转换为整数,或将 base 进制的字符串 x 转换为十进制并返回。 |
isinstance(obj, class-or-type-or-tuple) | 判断对象 obj 是否为指定类型的实例。 |
len(obj) | 返回对象 obj 中元素的个数。 |
list([x]) | 将对象 x 转换为列表,或生成空列表。 |
locals() | 返回当前作用域内局部变量及其值的字典。 |
map(func, *iterables) | 将函数 func 应用于每个迭代对象的元素并返回结果。 |
max(...) , min(...) | 返回可迭代对象中最大或最小的元素。 |
next(iterator[, default]) | 返回迭代器中的下一个元素。 |
oct(x) | 将整数 x 转换为八进制字符串。 |
open(fn[, mode]) | 以指定模式 mode 打开文件 fn 并返回文件对象。 |
ord(x) | 返回字符 x 的 Unicode 编码。 |
pow(x, y, z=None) | 返回 x 的 y 次方,如果指定了 z ,返回 (x**y) % z 。 |
print(...) | 将值输出到标准输出设备。 |
quit() | 退出当前解释器环境。 |
range([start,] stop[, step]) | 返回包含整数的 range 对象。 |
reduce(func, sequence[, initial]) | 累积地将双参数函数 func 应用于序列元素。 |
reversed(seq) | 返回 seq 的反向迭代器。 |
round(x[, ndigits]) | 将 x 四舍五入到指定小数位数。 |
sorted(iterable[, key, reverse]) | 返回排序后的新列表。 |
str(obj) | 将对象 obj 转换为字符串。 |
sum(x, start=0) | 返回 x 中元素的总和。 |
type(obj) | 返回对象 obj 的类型。 |
zip(seq1[, seq2 [...]]) | 将多个可迭代对象打包为元组。 |
3. 详细示例与应用
3.1 类型转换与类型判断
bin()
,oct()
,hex()
:将整数分别转换为二进制、八进制和十六进制字符串。
>>> bin(555)
'0b1000101011'
>>> oct(555)
'0o1053'
>>> hex(555)
'0x22b'
int()
:将其他形式的数字转换为整数。
>>> int('0x22b', 16)
555
float()
和complex()
:将数据转换为浮点数或复数。
>>> float(3)
3.0
>>> complex(3, 5)
(3+5j)
ord()
和chr()
:功能相反的函数,ord()
返回字符的 Unicode 编码,chr()
返回编码对应的字符。
>>> ord('A')
65
>>> chr(65)
'A'
3.2 基本输入输出
input()
:从用户输入中读取数据并返回字符串。
>>> x = input('请输入内容: ')
请输入内容: 123
>>> print(x)
123
print()
:输出内容到控制台,可以使用sep
和end
参数自定义输出格式。
>>> print(1, 2, 3, sep='-', end='!')
1-2-3!
3.3 排序与逆序
sorted()
:返回排序后的新列表。可以指定key
和reverse
参数来调整排序规则。
>>> sorted([4, 2, 9, 1], reverse=True)
[9, 4, 2, 1]
reversed()
:返回一个反向的迭代器对象。
>>> list(reversed([1, 2, 3, 4]))
[4, 3, 2, 1]
3.4 函数式编程工具
map()
:将函数应用于可迭代对象的每个元素。
>>> list(map(str, range(5)))
['0', '1', '2', '3', '4']
filter()
:过滤掉不满足条件的元素。
>>> list(filter(lambda x: x % 2 == 0, [1, 2, 3, 4]))
[2, 4]
reduce()
:对序列进行累积计算,需要从functools
导入。
>>> from functools import reduce
>>> reduce(lambda x, y: x + y, [1, 2, 3, 4])
10
3.5 枚举与打包
enumerate()
:枚举可迭代对象的元素,返回索引和值。
>>> list(enumerate(['a', 'b', 'c']))
[(0, 'a'), (1, 'b'), (2, 'c')]
zip()
:将多个可迭代对象打包成元组。
>>> list(zip([1, 2, 3], ['a', 'b', 'c']))
[(1, 'a'), (2, 'b'), (3, 'c')]
4. 总结
Python 内置函数数量众多且功能强大,难以在一篇博客中完全解释清楚。本节介绍了一部分常用内置函数,并演示了它们的基本用法。遇到不熟悉的函数时,可以通过 help()
函数查看详细使用帮助。编写程序时应优先考虑使用内置函数,因为它们不仅成熟、稳定,而且速度较快,有助于提高开发效率。