系列文章目录
文章目录
- 系列文章目录
- 前言
- 一、数学与数字运算 (7个)
-
-
- [1. `abs(x)`](#1.
abs(x)) - [2. `divmod(a, b)`](#2.
divmod(a, b)) - [3. `max(iterable)`](#3.
max(iterable)) - [4. `min(iterable)`](#4.
min(iterable)) - [5. `pow(base, exp, mod=None)`](#5.
pow(base, exp, mod=None)) - [6. `round(number, ndigits=None)`](#6.
round(number, ndigits=None)) - [7. `sum(iterable, start=0)`](#7.
sum(iterable, start=0))
- [1. `abs(x)`](#1.
-
- 二、数据类型转换与创建 (20个)
-
-
- [8. `bool(x)`](#8.
bool(x)) - [9. `int(x)`](#9.
int(x)) - [10. `float(x)`](#10.
float(x)) - [11. `complex(real, imag=0)`](#11.
complex(real, imag=0)) - [12. `str(object='')`](#12.
str(object='')) - [13. `list(iterable)`](#13.
list(iterable)) - [14. `tuple(iterable)`](#14.
tuple(iterable)) - [15. `dict(**kwarg)`](#15.
dict(**kwarg)) - [16. `set(iterable)`](#16.
set(iterable)) - [17. `frozenset(iterable)`](#17.
frozenset(iterable)) - [18. `bytes(source)`](#18.
bytes(source)) - [19. `bytearray(source)`](#19.
bytearray(source)) - [20. `memoryview(obj)`](#20.
memoryview(obj)) - [21. `bin(x)`](#21.
bin(x)) - [22. `oct(x)`](#22.
oct(x)) - [23. `hex(x)`](#23.
hex(x)) - [24. `chr(i)`](#24.
chr(i)) - [25. `ord(c)`](#25.
ord(c)) - [26. `ascii(object)`](#26.
ascii(object)) - [27. `repr(object)`](#27.
repr(object))
- [8. `bool(x)`](#8.
-
- 三、逻辑检查与反射 (15个)
-
-
- [28. `all(iterable)`](#28.
all(iterable)) - [29. `any(iterable)`](#29.
any(iterable)) - [30. `callable(object)`](#30.
callable(object)) - [31. `isinstance(object, classinfo)`](#31.
isinstance(object, classinfo)) - [32. `issubclass(class, classinfo)`](#32.
issubclass(class, classinfo)) - [33. `type(object)`](#33.
type(object)) - [34. `len(s)`](#34.
len(s)) - [35. `id(object)`](#35.
id(object)) - [36. `hash(object)`](#36.
hash(object)) - [37. `dir(object)`](#37.
dir(object)) - [38. `vars(object)`](#38.
vars(object)) - [39. `hasattr(object, name)`](#39.
hasattr(object, name)) - [40. `getattr(object, name)`](#40.
getattr(object, name)) - [41. `setattr(object, name, value)`](#41.
setattr(object, name, value)) - [42. `delattr(object, name)`](#42.
delattr(object, name))
- [28. `all(iterable)`](#28.
-
- 四、迭代与循环 (12个)
-
-
- [43. `range(start, stop, step)`](#43.
range(start, stop, step)) - [44. `enumerate(iterable, start=0)`](#44.
enumerate(iterable, start=0)) - [45. `zip(*iterables)`](#45.
zip(*iterables)) - [46. `filter(function, iterable)`](#46.
filter(function, iterable)) - [47. `map(function, iterable)`](#47.
map(function, iterable)) - [48. `sorted(iterable)`](#48.
sorted(iterable)) - [49. `reversed(seq)`](#49.
reversed(seq)) - [50. `iter(object)`](#50.
iter(object)) - [51. `next(iterator)`](#51.
next(iterator)) - [52. `slice(start, stop, step)`](#52.
slice(start, stop, step)) - [53. `aiter(async_iterable)`](#53.
aiter(async_iterable)) - [54. `anext(async_iterator)`](#54.
anext(async_iterator))
- [43. `range(start, stop, step)`](#43.
-
- 五、类、编译与底层 (7个)
-
-
- [55. `property(fget=None, ...)`](#55.
property(fget=None, ...)) - [56. `classmethod(function)`](#56.
classmethod(function)) - [57. `staticmethod(function)`](#57.
staticmethod(function)) - [58. `super()`](#58.
super()) - [59. `object()`](#59.
object()) - [60. `compile(source, ...)`](#60.
compile(source, ...)) - [61. `import(name)`](#61.
__import__(name))
- [55. `property(fget=None, ...)`](#55.
-
- 六、输入输出与系统环境 (10个)
-
-
- [62. `input(prompt)`](#62.
input(prompt)) - [63. `print(*objects)`](#63.
print(*objects)) - [64. `open(file, mode)`](#64.
open(file, mode)) - [65. `help(object)`](#65.
help(object)) - [66. `breakpoint()`](#66.
breakpoint()) - [67. `globals()`](#67.
globals()) - [68. `locals()`](#68.
locals()) - [69. `format(value, format_spec)`](#69.
format(value, format_spec)) - [70. `eval(expression)`](#70.
eval(expression)) - [71. `exec(object)`](#71.
exec(object))
- [62. `input(prompt)`](#62.
-
- 总结
前言
Python 的强大之处在于它自带了丰富的工具箱。截至 Python 3.12 版本,官方提供了 71 个内置函数。这些函数无需 import 任何模块即可直接使用。
为了方便查阅和记忆,本文将这 71 个函数按功能分类,并对每一个函数进行了详细拆解:既有严肃的官方定义,也有通俗易懂的"人话"解释,更附带了直接能跑的代码样例。
一、数学与数字运算 (7个)
这组函数负责处理数值,绝对理性,没有感情。
1. abs(x)
- 📖 官方:返回一个数的绝对值。
- 🗣️ 人话 :去油腻。不管正负,出来全是正能量。
- 💻 代码 :
abs(-10) # 10
2. divmod(a, b)
- 📖 官方:将两个数作为参数,返回一对商和余数。
- 🗣️ 人话 :小学除法。买10个苹果分给3个人,每人几个?剩几个?一次搞定。
- 💻 代码 :
divmod(10, 3) # (3, 1)
3. max(iterable)
- 📖 官方:返回可迭代对象中的最大项,或两个及以上实参中最大的。
- 🗣️ 人话 :卷王。在一堆数里找老大。
- 💻 代码 :
max([1, 99, 2]) # 99
4. min(iterable)
- 📖 官方:返回可迭代对象中的最小项,或两个及以上实参中最小的。
- 🗣️ 人话 :潜水王。在一堆数里找老幺。
- 💻 代码 :
min([1, 99, 2]) # 1
5. pow(base, exp, mod=None)
- 📖 官方 :返回
base的exp次幂;如果mod存在,则对mod取余。 - 🗣️ 人话 :指数爆炸。算次方的。第三个参数常用于加密算法(大数取模)。
- 💻 代码 :
pow(2, 3) # 8
6. round(number, ndigits=None)
- 📖 官方 :返回
number舍入到小数点后ndigits位精度的值。 - 🗣️ 人话 :银行家舍入。注意 Python 3 是"奇进偶不进"(四舍六入五取偶)。
- 💻 代码 :
round(2.5) # 2
7. sum(iterable, start=0)
- 📖 官方 :从
start开始自左向右对iterable的项求和并返回总计值。 - 🗣️ 人话 :购物车结算。把列表里的数字加起来。
- 💻 代码 :
sum([1, 2, 3]) # 6
二、数据类型转换与创建 (20个)
负责把对象从一种形态变成另一种形态,俗称"投胎"。
8. bool(x)
- 📖 官方 :返回一个布尔值,即
True或False。 - 🗣️ 人话 :测谎仪 。只有
0、None、空容器是False,其余全是True。 - 💻 代码 :
bool([]) # False
9. int(x)
- 📖 官方:根据一个数字或字符串返回一个整数对象。
- 🗣️ 人话 :取整。直接砍掉小数部分,不讲四舍五入。
- 💻 代码 :
int(3.99) # 3
10. float(x)
- 📖 官方:返回从数字或字符串生成的浮点数。
- 🗣️ 人话 :变小数。加上小数点,身价立马精确了。
- 💻 代码 :
float(3) # 3.0
11. complex(real, imag=0)
- 📖 官方 :返回值为
real + imag*1j的复数。 - 🗣️ 人话 :变复数。实部+虚部,工科生的噩梦。
- 💻 代码 :
complex(1, 2) # (1+2j)
12. str(object='')
- 📖 官方 :返回
object的字符串版本。 - 🗣️ 人话 :文本化。万物皆可文本化。
- 💻 代码 :
str(123) # "123"
13. list(iterable)
- 📖 官方:实际上 list 是一种可变序列类型。
- 🗣️ 人话 :装袋子。把能遍历的东西都装进一个列表里。
- 💻 代码 :
list("Hi") # ['H', 'i']
14. tuple(iterable)
- 📖 官方:实际上 tuple 是一种不可变序列类型。
- 🗣️ 人话 :塑封袋。装进去就拿不出来、改不了的列表。
- 💻 代码 :
tuple([1, 2]) # (1, 2)
15. dict(**kwarg)
- 📖 官方:创建一个新的字典。
- 🗣️ 人话 :查字典。创建键值对映射。
- 💻 代码 :
dict(a=1) # {'a': 1}
16. set(iterable)
- 📖 官方 :返回一个新的
set对象。 - 🗣️ 人话 :去重机。丢进去一堆重复的,出来只剩独一无二的。
- 💻 代码 :
set([1, 2, 2]) # {1, 2}
17. frozenset(iterable)
- 📖 官方 :返回一个新的
frozenset对象。 - 🗣️ 人话 :冻结集合。不能修改的集合,可以当字典的 key。
- 💻 代码 :
frozenset([1, 2])
18. bytes(source)
- 📖 官方:返回一个新的"bytes"对象, 是一个不可变序列。
- 🗣️ 人话 :机器粮。给计算机看的二进制数据,不可变。
- 💻 代码 :
bytes([65]) # b'A'
19. bytearray(source)
- 📖 官方:返回一个新的 bytes 数组,可变序列。
- 🗣️ 人话 :橡皮泥。可以修改的二进制数据。
- 💻 代码 :
bytearray(b"Hi")
20. memoryview(obj)
- 📖 官方:返回由给定实参创建的"内存视图"对象。
- 🗣️ 人话 :透视眼。不复制数据直接看内存,处理大文件神器。
- 💻 代码 :
v = memoryview(b'abc')
21. bin(x)
- 📖 官方:将一个整数转变为一个前缀为"0b"的二进制字符串。
- 🗣️ 人话 :变二进制。
- 💻 代码 :
bin(3) # '0b11'
22. oct(x)
- 📖 官方:将一个整数转变为一个前缀为"0o"的八进制字符串。
- 🗣️ 人话 :变八进制。
- 💻 代码 :
oct(8) # '0o10'
23. hex(x)
- 📖 官方:将整数转换为以"0x"为前缀的小写十六进制字符串。
- 🗣️ 人话 :变十六进制。
- 💻 代码 :
hex(255) # '0xff'
24. chr(i)
- 📖 官方 :返回 Unicode 码位为整数
i的字符。 - 🗣️ 人话 :数字转字符。查表 97 对应 'a'。
- 💻 代码 :
chr(97) # 'a'
25. ord(c)
- 📖 官方:对表示单个 Unicode 字符的字符串,返回其整数码点。
- 🗣️ 人话 :字符转数字。
- 💻 代码 :
ord('a') # 97
26. ascii(object)
- 📖 官方:返回一个对象可打印的字符串,非 ASCII 字符会转义。
- 🗣️ 人话 :去汉字化 。中文会变成
\u乱码。 - 💻 代码 :
ascii('你好') # '\u4f60\u597d'
27. repr(object)
- 📖 官方:返回包含一个对象的可打印表示形式的字符串。
- 🗣️ 人话 :卸妆水。给开发者看的原始字符串,通常带引号。
- 💻 代码 :
repr("1") # "'1'"
三、逻辑检查与反射 (15个)
最喜欢打听"你是谁?""你有什么?""你行不行?"
28. all(iterable)
- 📖 官方 :如果
iterable的所有元素为真,返回True。 - 🗣️ 人话 :全票通过。全是 True 才是 True。
- 💻 代码 :
all([True, 1]) # True
29. any(iterable)
- 📖 官方 :如果
iterable的任一元素为真则返回True。 - 🗣️ 人话 :滥竽充数。只要有一个是 True,结果就是 True。
- 💻 代码 :
any([0, 1]) # True
30. callable(object)
- 📖 官方 :如果参数
object是可调用的,返回True。 - 🗣️ 人话 :能喊吗 。屁股后面能不能加括号
()运行它? - 💻 代码 :
callable(print) # True
31. isinstance(object, classinfo)
- 📖 官方 :如果参数
object是参数classinfo的实例,返回True。 - 🗣️ 人话 :查户口。判断你是不是某种类型。
- 💻 代码 :
isinstance(5, int) # True
32. issubclass(class, classinfo)
- 📖 官方 :如果
class是classinfo的子类,返回True。 - 🗣️ 人话 :查祖宗。判断一个类是不是另一个类的后代。
- 💻 代码 :
issubclass(bool, int) # True
33. type(object)
- 📖 官方 :返回
object的类型。 - 🗣️ 人话 :照妖镜。看你到底是个什么东西。
- 💻 代码 :
type([]) # <class 'list'>
34. len(s)
- 📖 官方:返回对象的长度(元素个数)。
- 🗣️ 人话 :量尺。量量你有多少货。
- 💻 代码 :
len("Hi") # 2
35. id(object)
- 📖 官方:返回对象的"标识值",通常是内存地址。
- 🗣️ 人话 :身份证号。
- 💻 代码 :
id(x)
36. hash(object)
- 📖 官方:返回该对象的哈希值(如果它有的话)。
- 🗣️ 人话 :数字指纹。用于字典快速查找。
- 💻 代码 :
hash("hi")
37. dir(object)
- 📖 官方:返回该对象的有效属性列表。
- 🗣️ 人话 :扒皮。看看这个对象肚子里都有啥属性和方法。
- 💻 代码 :
dir(str)
38. vars(object)
- 📖 官方 :返回对象的
__dict__属性。 - 🗣️ 人话 :偷看日记。把对象的属性以字典形式显示出来。
- 💻 代码 :
vars(obj)
39. hasattr(object, name)
- 📖 官方 :如果字符串是对象的属性之一的名称,则返回
True。 - 🗣️ 人话 :你有吗。
- 💻 代码 :
hasattr(str, 'upper') # True
40. getattr(object, name)
- 📖 官方:返回对象命名属性的值。
- 🗣️ 人话 :给我拿。动态获取属性值。
- 💻 代码 :
getattr(obj, 'x')
41. setattr(object, name, value)
- 📖 官方:设置属性值。
- 🗣️ 人话 :给你塞。动态给对象增加或修改属性。
- 💻 代码 :
setattr(obj, 'x', 10)
42. delattr(object, name)
- 📖 官方:删除该属性。
- 🗣️ 人话 :给你扔。动态删除属性。
- 💻 代码 :
delattr(obj, 'x')
四、迭代与循环 (12个)
让你的 for 循环骚操作满天飞。
43. range(start, stop, step)
- 📖 官方:实际上是一个不可变的序列类型。
- 🗣️ 人话 :造数机。生成一串数字序列,循环最爱。
- 💻 代码 :
list(range(3)) # [0, 1, 2]
44. enumerate(iterable, start=0)
- 📖 官方:返回一个枚举对象。
- 🗣️ 人话 :带号上岗。遍历时顺便给你标上序号。
- 💻 代码 :
list(enumerate(['a'])) # [(0, 'a')]
45. zip(*iterables)
- 📖 官方:在多个迭代器上并行迭代,返回元组。
- 🗣️ 人话 :拉链。把两个列表对应位置缝在一起。
- 💻 代码 :
list(zip([1], ['a'])) # [(1, 'a')]
46. filter(function, iterable)
- 📖 官方:用函数返回真的那些元素构建迭代器。
- 🗣️ 人话 :筛子。只保留满足条件的。
- 💻 代码 :
list(filter(bool, [0, 1])) # [1]
47. map(function, iterable)
- 📖 官方:将函数应用于每一项并输出其结果。
- 🗣️ 人话 :批量加工厂。给列表里每个元素都来一刀。
- 💻 代码 :
list(map(str, [1, 2])) # ['1', '2']
48. sorted(iterable)
- 📖 官方:根据项返回一个新的已排序列表。
- 🗣️ 人话 :整理狂。返回一个排好序的新列表。
- 💻 代码 :
sorted([2, 1]) # [1, 2]
49. reversed(seq)
- 📖 官方:返回一个反向的迭代器。
- 🗣️ 人话 :倒带。倒着读。
- 💻 代码 :
list(reversed([1, 2])) # [2, 1]
50. iter(object)
- 📖 官方:返回一个迭代器对象。
- 🗣️ 人话 :手动挡。把列表变成迭代器。
- 💻 代码 :
it = iter([1, 2])
51. next(iterator)
- 📖 官方:从迭代器中获取下一项。
- 🗣️ 人话 :挤牙膏。挤一下出一个,没货了报错。
- 💻 代码 :
next(it)
52. slice(start, stop, step)
- 📖 官方:返回一个切片对象。
- 🗣️ 人话 :手术刀 。把
[0:5]这种切片操作存成变量。 - 💻 代码 :
s = slice(0, 1)
53. aiter(async_iterable)
- 📖 官方:返回异步迭代器。
- 🗣️ 人话 :异步手动挡 。给
async for用的底层工具。 - 💻 代码 :
aiter(obj)
54. anext(async_iterator)
- 📖 官方:从异步迭代器返回下一项。
- 🗣️ 人话 :异步挤牙膏。
- 💻 代码 :
await anext(it)
五、类、编译与底层 (7个)
进阶玩法的基石,新手慎用。
55. property(fget=None, ...)
- 📖 官方:返回一个 property 属性。
- 🗣️ 人话 :伪装者。把方法伪装成属性,调用时不用加括号。
- 💻 代码 :
@property
56. classmethod(function)
- 📖 官方:把一个方法封装成类方法。
- 🗣️ 人话 :班干部。绑定到类而不是实例。
- 💻 代码 :
@classmethod
57. staticmethod(function)
- 📖 官方:将方法转换为静态方法。
- 🗣️ 人话 :房客。寄宿在类里的普通函数,跟类没啥深层关系。
- 💻 代码 :
@staticmethod
58. super()
- 📖 官方:返回一个代理对象,将调用委托给父类。
- 🗣️ 人话 :找爸爸。调用父类的方法。
- 💻 代码 :
super().__init__()
59. object()
- 📖 官方:返回一个不带特征的新对象,所有类的基类。
- 🗣️ 人话 :亚当。Python 所有对象的祖宗。
- 💻 代码 :
o = object()
60. compile(source, ...)
- 📖 官方:将源字符串编译成代码或 AST 对象。
- 🗣️ 人话 :翻译官。把字符串代码编译成字节码。
- 💻 代码 :
compile("print(1)", "", "exec")
61. __import__(name)
- 📖 官方 :此函数会由
import语句发起调用。 - 🗣️ 人话 :底层召唤术 。
import背后的真身,一般人用不到。 - 💻 代码 :
__import__('os')
六、输入输出与系统环境 (10个)
负责和用户、文件系统、解释器环境聊天。
62. input(prompt)
- 📖 官方:从输入中读取一行。
- 🗣️ 人话 :要饭。程序暂停,伸手管用户要输入。
- 💻 代码 :
name = input("Who?")
63. print(*objects)
- 📖 官方 :将
objects打印到文本流。 - 🗣️ 人话 :大喇叭。新手唯一的调试工具。
- 💻 代码 :
print("Hello")
64. open(file, mode)
- 📖 官方:打开文件并返回 file object。
- 🗣️ 人话 :开门。操作文件。
- 💻 代码 :
f = open('t.txt', 'r')
65. help(object)
- 📖 官方:启动内置的帮助系统。
- 🗣️ 人话 :救命。弹出官方文档。
- 💻 代码 :
help(list)
66. breakpoint()
- 📖 官方:此函数会在调用点进入调试器。
- 🗣️ 人话 :暂停键。代码跑到这会自动卡住,进入调试模式。
- 💻 代码 :
breakpoint()
67. globals()
- 📖 官方:返回实现当前模块命名空间的字典。
- 🗣️ 人话 :全局大查房。看看全局变量有哪些。
- 💻 代码 :
globals()
68. locals()
- 📖 官方:返回表示当前本地符号表的字典。
- 🗣️ 人话 :局部小查房。看看当前函数里有哪些变量。
- 💻 代码 :
locals()
69. format(value, format_spec)
- 📖 官方 :将
value转换为"格式化后"的表示形式。 - 🗣️ 人话 :美颜相机。保留几位小数?左对齐还是右对齐?
- 💻 代码 :
format(3.14, '.1f') # '3.1'
70. eval(expression)
- 📖 官方 :对
expression参数进行求值。 - 🗣️ 人话 :计算器 。把字符串当成一行代码算出来。危险!
- 💻 代码 :
eval("1+1") # 2
71. exec(object)
- 📖 官方:此函数支持动态执行 Python 代码。
- 🗣️ 人话 :执行官 。比
eval更狠,能运行一整段代码。极度危险! - 💻 代码 :
exec("print('Hi')")
总结
以上就是 Python 3.12 的 71 个内置函数 全图鉴。熟练使用这些"官方外挂",能让你的代码从几十行缩减为一行,既优雅又高效。建议收藏本文,作为日常开发的速查字典!
本章有误,请指正,Thanks♪(・ω・)ノ