Python 3.12 内置函数全图鉴:71 个“官方外挂”详解


系列文章目录

文章目录

  • 系列文章目录
  • 前言
  • 一、数学与数字运算 (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))
  • 二、数据类型转换与创建 (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))
  • 三、逻辑检查与反射 (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))
  • 四、迭代与循环 (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))
  • 五、类、编译与底层 (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))
  • 六、输入输出与系统环境 (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))
  • 总结

前言

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)

  • 📖 官方 :返回 baseexp 次幂;如果 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)

  • 📖 官方 :返回一个布尔值,即 TrueFalse
  • 🗣️ 人话测谎仪 。只有 0None、空容器是 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)

  • 📖 官方 :如果 classclassinfo 的子类,返回 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♪(・ω・)ノ

相关推荐
CCPC不拿奖不改名2 小时前
大语言模型的基础:大语言模型基础认知
人工智能·python·学习·语言模型·自然语言处理·面向对象·智能体
夏沫mds2 小时前
基于 Flask 与Vue 3 及协同过滤算法的智能电影推荐系统
vue.js·python·flask·协同过滤
子午2 小时前
【2026原创】鱼类识别系统~Python+深度学习+CNN卷积神经网络算法+模型训练+图像识别
图像处理·python·深度学习·cnn
地理探险家2 小时前
【YOLOv8实战】15组衣物类深度学习数据集分享|附加载+标签管理代码
人工智能·python·深度学习·yolo·模型训练·电商视觉
大学生毕业题目2 小时前
毕业项目推荐:103-基于yolov8/yolov5/yolo11的皮肤癌检测识别系统(Python+卷积神经网络)
人工智能·python·yolo·目标检测·cnn·pyqt·皮肤癌检测
ai_top_trends2 小时前
AI 生成 PPT 哪个好用?2026 年主流工具实测对比
人工智能·python
于初见月2 小时前
Conda环境中的pip究竟指向哪里?
python·conda·pip
资深流水灯工程师2 小时前
基于Python的Qt开发之Pyside6 QtSerialPort库的使用
python·qt
木头左2 小时前
HMM隐马尔可夫模型在指数期权双币种套利策略
python