在 Python 中,一切皆对象。

数据在程序中以对象的形式存在,而每个对象都隶属于某种数据类型(type)。

Python 内置的数据类型大致包括八类:数值类型、布尔类型、文本类型、序列类型、集合类型、映射类型、None 类型等。

这些类型既可以独立使用,也可以相互组合,构成更复杂的数据结构。

一、数值类型

Numeric types

特点:表示各种数值,支持数学运算。

int

整数对象。支持任意精度,不会溢出(Python 3 的整数精度仅受可用内存限制。

float

浮点数对象。基于 IEEE 754 双精度浮点数,约 15 ~ 16 位十进制有效数字。

complex

复数对象。用 a+bj 表示,j 表示虚数单位。

x = 42
y = 3.14
z = 2 + 3j

详情请参阅:

二、布尔类型

Boolean type

特点:逻辑类型,只有两个值:True 和 False。本质上是 int 的子类。

布尔类型常用于条件判断、循环控制及逻辑运算。

bool

布尔对象。

print(True + 1)        # 2
print(all([1, "ok"]))  # True
print(any([0, ""]))    # False

详情请参阅:

三、文本类型

Text type / Text sequence type

特点:不可变的 字符序列,用于存储和处理文本。

支持索引与切片、查找与替换、分割与拼接,以及多种格式化方法。

str

对象。注意,Python 无专门的字符类型。

字符串是不可变对象,每次修改都会生成新字符串

s = " hello world "
print(s.strip().title())         # "Hello World"
print(f"My name is {'Alice'}")   # f-string 格式化

详情请参阅:

四、序列类型

Sequence types

特点:有序、可迭代、支持索引和切片。

list

对象,可变序列,支持增删改查。

tuple

对象,不可变序列,适合固定结构。

range

对象,高效表示整数区间,惰性序列,常用于循环。

lst = [1, 2, 3]
lst.append(4)
print(lst)           # [1, 2, 3, 4]

t = (1, 2, 3)
print(t[0])          # 1

for i in range(3):
    print(i)         # 0,1,2

list 与 tuple 实际存储全部元素,而 range 仅按需计算元素值。

详情请参阅:

五、集合类型

Set types

特点:无序、元素唯一、不支持索引,常用于去重和集合运算。

set

可变对象。

frozenset

不可变对象(也称“冻结集合”)。可作为字典键。

s = {1, 2, 3}
s.add(2)                  # 重复元素无效
print(s)                  # {1, 2, 3}
print({1, 2} | {2, 3})    # 并集 {1, 2, 3}

集合的典型应用包括去重、成员检测与集合运算(交集、并集、差集)。

详情请参阅:

六、映射类型

Mapping Type

特点:键值对存储,键必须唯一且可哈希;通过键而不是索引访问。

基于哈希表实现,查找、插入、删除的平均时间复杂度为 O(1)。

dict

对象。

d = {"name": "Alice", "age": 20}
print(d["name"])          # Alice
d["age"] = 21
print(d.get("gender"))    # None

详情请参阅:

七、字节类型

Binary sequence types

特点:存储二进制数据,常用于文件 I/O、网络通信。

bytes

不可变字节序列对象。

bytearray

可变字节序列对象。

memoryview

内存视图对象,支持零拷贝(引用同一内存)操作。

# bytes:不可变
b = b"hello"
print(b, type(b))        # b'hello'

# bytearray:可变
ba = bytearray(b"hello")
ba[0] = 72               # 修改第一个字节,对应 'H'
print(ba, ba.decode())   # bytearray(b'Hello') Hello

# memoryview:共享内存视图
mv = memoryview(ba)
print(mv[1:4].tobytes()) # b'ell'
mv[1:4] = b"ABC"         # 修改原始 bytearray
print(ba)                # bytearray(b'HABCo')

详情请参阅:

八、None 类型

NoneType

特点:只有一个实例 None,表示“无”或“无效”。

NoneType

空值对象。

x = None
if x is None:
    print("x is empty")

None 常用于函数的默认返回值或表示‘缺失数据’的占位符。

详情请参阅:

小结

数值类型:int、float、complex(数值计算)

布尔类型:bool(逻辑判断,继承自 int 类)

文本类型:str(不可变 Unicode 序列)

序列类型:list、tuple、range(有序、可索引)

集合类型:set、frozenset(无序、唯一)

映射类型:dict(键值对存储)

字节类型:bytes、bytearray、memoryview(二进制数据)

空值类型:NoneType(唯一实例 None)

这些内置类型构成了 Python 的数据系统基础。理解它们之间的关系与差异,是深入掌握 Python 面向对象机制与内存模型的起点。

点赞有美意,赞赏是鼓励