简短导读

这些函数覆盖日常开发中最常用的工具函数(类型转换、迭代器工具、序列/集合操作、反射与判断等)。每个示例尽量简洁明了,便于教学或演示。需要我把这些示例打包成一个 runnable 的 .py 示例文件或 MD 教程吗?


下面按字母顺(部分分组)列出 30 个核心内置函数。

1) abs(x)

签名abs(x)
示例

abs(-3.5)  # -> 3.5

最佳实践:用于数值与自定义实现 __abs__ 的类;对复数返回其模(abs(3+4j)==5)。


2) all(iterable)

签名all(iterable)
示例

all([True, 1, "non-empty"])  # -> True
all([])  # -> True(空可迭代对象被视为“全真”)

最佳实践:用于判断“所有条件都成立”;注意空迭代返回 True(短路行为)。


3) any(iterable)

签名any(iterable)
示例

any([0, "", None, "ok"])  # -> True

最佳实践:判断是否存在至少一个真值;搭配生成器可实现早停(节省开销)。


4) bool(x=False)

签名bool(x)
示例

bool(0), bool(""), bool([1])  # -> False, False, True

最佳实践:用于显式布尔化,但在条件判断中通常直接用对象即可(if seq:)。


5) callable(obj)

签名callable(obj)
示例

callable(len), callable(3)  # -> True, False

最佳实践:检测回调/处理函数是否可调用,避免在运行时抛异常。


6) chr(i)

签名chr(i)
示例

chr(65)  # -> 'A'

最佳实践:与 ord() 配对使用,注意 i 必须是有效的 Unicode 码点。


7) ord(c)

签名ord(c)
示例

ord('A')  # -> 65

最佳实践:处理字符编码、加密/哈希位移等场景。


8) dict([mapping_or_iterable], **kwargs)

签名: 多种构造方式
示例

dict(a=1, b=2)                 # -> {'a':1,'b':2}
dict([('x',1), ('y',2)])      # -> {'x':1,'y':2}

最佳实践:使用字典推导 {k:v for ...} 更灵活;合并可用 {**d1, **d2}(Py3.5+)。


9) dir([obj])

签名dir([obj])
示例

dir(str)[:10]  # 查看字符串类型的属性/方法

最佳实践:用于调试和探索对象属性,但不是官方 API 文档,结果受 __dir__ 影响。


10) divmod(a, b)

签名divmod(a, b)
示例

divmod(17, 5)  # -> (3, 2)

最佳实践:整数除法与取余一起用,写法比 a//b, a%b 更清晰。


11) enumerate(iterable, start=0)

签名enumerate(iterable, start=0)
示例

for i, v in enumerate(["a","b"], 1):
    print(i, v)  # 1 a \n 2 b

最佳实践:避免手工维护索引;常与解包一起用。


12) filter(function, iterable)

签名filter(function, iterable)
示例

list(filter(lambda x: x%2==0, range(6)))  # -> [0,2,4]

最佳实践:Python3 返回迭代器(惰性);可读性上有时 [x for x in it if cond(x)] 更直观。


13) float(x)

签名float(x)
示例

float("3.14")  # -> 3.14

最佳实践:转换字符串可能抛 ValueError;对精度敏感场景用 decimal.Decimal


14) getattr(obj, name[, default])

签名getattr(obj, name[, default])
示例

getattr(obj, "attr", None)

最佳实践:常用于反射与动态属性访问;比 try/except 更简洁(若提供 default)。


15) hasattr(obj, name)

签名hasattr(obj, name)
示例

hasattr(obj, "attr")

最佳实践:注意 hasattr 会吞掉属性访问时抛出的异常(它内部用 getattr),小心隐藏错误。


16) hash(obj)

签名hash(obj)
示例

hash("hello")

最佳实践:只对不可变类型(或实现 __hash__ 的对象)有用;不要把不同 Python 进程的哈希值当作稳定 ID(随机化影响)。


17) hex(x)

签名hex(x)
示例

hex(255)  # -> '0xff'

最佳实践:用于调试/显示十六进制;去掉前缀用 hex(x)[2:](注意负数)。


18) int(x, base=10)

签名int(x, base=10)
示例

int("ff", 16)  # -> 255

最佳实践:传字符串时可指定 base;对浮点传入会截断(非四舍五入)。


19) isinstance(obj, class_or_tuple)

签名isinstance(obj, class_or_tuple)
示例

isinstance([1,2], list)  # -> True

最佳实践:优先用接口/鸭子类型,但在需要类型安全/分支逻辑时使用它。


20) issubclass(cls, class_or_tuple)

签名issubclass(cls, class_or_tuple)
示例

issubclass(bool, int)  # -> True (因为 bool 是 int 的子类)

最佳实践:传入第一个参数前先确保它是类,否则会抛 TypeError


21) iter(obj[, sentinel])

签名iter(obj[, sentinel])
示例

it = iter([1,2,3])
next(it)  # -> 1
# 或者 iter(callable, sentinel)

最佳实践iter(callable, sentinel) 用于把有状态的调用转换成迭代器(流式读取)。


22) len(s)

签名len(s)
示例

len([1,2,3])  # -> 3

最佳实践:对自定义容器实现 __len__;对于大数据流不要尝试 len(generator)


23) list(iterable)

签名list(iterable)
示例

list(range(3))  # -> [0,1,2]

最佳实践:把迭代器转换为列表会立即耗尽并占用内存,处理大流时慎用。


24) map(function, iterable, ...)

签名map(function, iterable, ...)
示例

list(map(lambda x: x*2, [1,2,3]))  # -> [2,4,6]

最佳实践:返回惰性迭代器;多数场景下列表推导更易读([f(x) for x in it])。


25) max(iterable, *[, key, default])

签名max(...)
示例

max([1,5,3])                        # -> 5
max(["a","bb","ccc"], key=len)      # -> 'ccc'

最佳实践:在可能为空的可迭代对象上使用 default 避免抛 ValueError


26) min(...)

签名min(...)
示例

min([1,5,3])                        # -> 1

最佳实践:同 maxkey 参数很方便做自定义比较。


27) next(iterator, default=...)

签名next(iterator[, default])
示例

it = iter([1])
next(it, None)  # -> 1
next(it, None)  # -> None (不会抛 StopIteration)

最佳实践:配合 default 可避免 StopIteration 异常。


28) pow(x, y[, z])

签名pow(x, y[, z])
示例

pow(2, 10)    # -> 1024
pow(2, 10, 1000)  # -> 24 (模运算,效率优于 pow(2,10) % 1000)

最佳实践:当需要模幂计算时传 z 更高效且更安全(常用于加密算法)。


29) print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

签名print(...)
示例

print("a", "b", sep=",")  # -> a,b

最佳实践:用于调试;生产日志应使用 logging 模块以获得级别/输出管理能力。


30) range(start, stop[, step])

签名range(start, stop[, step])
示例

list(range(1, 5))  # -> [1,2,3,4]

最佳实践range 是惰性且内存友好;用于索引循环优于 while


31) sorted(iterable, *, key=None, reverse=False)

:因为 sorted 与 list.sort() 都极常用,我把它加入作为第 31 个拓展(但主清单仍为 30)。
签名sorted(iterable, *, key=None, reverse=False)
示例

sorted(["a", "bb", "ccc"], key=len, reverse=True)  # -> ['ccc','bb','a']

最佳实践sorted 返回新列表;若就地排序使用 list.sort()(内存和速度更优)。


如何把这份速查稿用好(3 个建议)

  1. 教学/视频脚本:把每个函数做成短片段(30–60 秒),配合真实的代码演示能快速吸引观众。
  2. 贴近项目:用你项目中的小片段替换示例(更有说服力)。
  3. 扩展包:我可以把所有示例打包成一个 runnable 的 examples.py,并生成带输出的 Markdown(README)用于发布或教学 PPT。