核心要点

  • 能按数值/序列/映射/集合/布尔/二进制/None 分类列举

  • 知道可变 vs 不可变类型及典型代表

  • 理解 type() / isinstance() 的用法与区别

简要回答

Python 内置类型分标量(int/float/complex/bool/None)、序列(str/list/tuple/bytes)、映射(dict)、集合(set/frozenset)等;多数容器区分可变与不可变,影响传参副作用与哈希能力。

标准回答

一、先把结论讲清楚

Python 常用内置数据类型可按用途分组:

类别 类型 可变?
数值 int, float, complex, bool 不可变
文本/序列 str, bytes, bytearray str/bytes 不可变
容器 list, tuple, dict, set, frozenset list/dict/set 可变

二、检测类型

type(x) 返回精确类型;isinstance(x, list) 支持继承判断,更推荐。

三、面试要点

boolint 子类;None 是单例;可哈希类型才能作 dict 键(list 不行,tuple 内元素全不可哈希才行)。AI 工程中 NumPy ndarrayPyTorch Tensor 是扩展类型,不属于内置。延伸阅读:概率论基础 中也会用到数值与分布类型。

回答思路

  • 【定义】用一句话说清「Python 有哪些内置数据类型」

  • 【原理】讲清关键机制或步骤(2~3 点)

  • 【例子】举一个真实项目、论文或产品中的例子

  • 【对比】与易混淆概念或替代方案比较(如有)

  • 【收尾】总结适用场景 + 一个局限或风险

延伸学习

Python 官方文档 Built-in Types;本站 概率论基础 涉及统计常用数据结构。

常见误区

⚠️ 常见踩坑

误区一:容易答偏的地方:只罗列名词、不会举例;混淆相似概念;忽略工程约束(成本、延迟、数据质量)。不确定时应主动说明假设。

追问

追问 1哪些内置类型可作为 dict 的键?

只有**可哈希(hashable)**且不可变的对象:int、str、tuple(元素均需可哈希)、frozenset 等。list、dict、set 可变故不可哈希;自定义类默认可哈希(除非实现 eq 却不实现 hash)。

追问 2int 在 Python 3 中有大小限制吗?

Python 3 的 int 是任意精度整数,仅受内存限制;不像 C/Java 有固定位宽。float 仍遵循 IEEE 754 双精度,超大整数转 float 可能丢精度。

追问 3bytes 和 bytearray 有什么区别?

二者都存 0–255 字节序列;bytes 不可变,bytearray 可变。网络 I/O、文件二进制读写常用 bytes;需要原地修改缓冲区时用 bytearray。

🔗 相似问题

同一考点的不同问法,换着练更稳

延伸学习

按主题分类的相关资源,便于系统复习