在 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,2list 与 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 面向对象机制与内存模型的起点。
“点赞有美意,赞赏是鼓励”
热门跟贴