Python 数据类型全解:编程的基石
在 Python 中,一切皆对象。而数据类型,决定了这些对象能做什么,不能做什么。
Python 的数据类型非常丰富且灵活(动态类型),不需要像 C 或 Java 那样在声明变量时指定类型。本文将带你深入理解 Python 的核心数据类型。
- 数值类型 (Numbers)
这是最直观的类型,用于数学计算。
整数 (int)
不带小数点的数字。Python 3 的整数没有大小限制(只要内存够大)。
age = 25
count = -100
big_num = 1000000000000000000 # 自动处理大数
浮点数 (float)
带小数点的数字。注意,浮点数计算可能会有微小的精度误差(计算机二进制存储导致的)。
price = 19.99
pi = 3.14159
科学计数法
sci = 1.2e3 # 等于 1200.0
布尔值 (bool)
逻辑上的“真”与“假”,只有两个值:True 和 False。
注意:在数学运算中,True 等于 1,False 等于 0。
is_active = True
is_admin = False
print(True + 1) # 输出 2 (不推荐这样写,但要知道原理)
- 序列类型 (Sequences) - 有序的数据集合
序列中的每个元素都有一个索引(Index),从 0 开始。
字符串 (str)
用来存储文本。可以用单引号 ' 或双引号 " 包裹。
name = "Python"
message = 'Hello, World!'
常用操作
print(name[0]) # 索引: 'P'
print(name[1:4]) # 切片: 'yth' (包头不包尾)
print(name + " 3.9") # 拼接
列表 (list) - 最常用
可变的有序序列。可以存任何类型的数据,相当于其他语言的数组,但更灵活。
fruits = ["apple", "banana", "cherry"]
mixed = [1, "hello", 3.14, True] # 可以混装
增删改查
fruits.append("orange") # 增加
fruits[0] = "pear" # 修改
del fruits[1] # 删除
元组 (tuple)
不可变的有序序列。一旦创建,里面的元素就不能改。通常用于存储不希望被修改的配置数据。
point = (10, 20)
colors = ("red", "green", "blue")
point[0] = 5 # 报错!TypeError: 'tuple' object does not support item assignment
为什么要有元组?
安全:保证数据不被意外修改。
性能:元组比列表占用内存更小,创建速度更快。
- 映射与集合类型 (Mapping & Set)
字典 (dict) - 最常用
键值对 (Key-Value) 的集合。类似于查字典,通过“键”快速找到“值”。
键 (Key):必须是不可变类型(如字符串、数字、元组),且唯一。
值 (Value):可以是任意类型。
user = {
"name": "Tom",
"age": 30,
"skills": ["Python", "Django"]
}
print(user["name"]) # 查: 'Tom'
user["age"] = 31 # 改
user["city"] = "Beijing" # 增
集合 (set)
无序、不重复的元素集合。主要用于去重和数学集合运算(交集、并集)。
ids = {101, 102, 103, 101}
print(ids) # 输出 {101, 102, 103},自动去重了
A = {1, 2, 3}
B = {3, 4, 5}
print(A & B) # 交集: {3}
print(A | B) # 并集: {1, 2, 3, 4, 5}
- 核心概念:可变 (Mutable) vs 不可变 (Immutable)
这是面试和 Debug 时的重灾区。
类型
可变性
意味着什么?
List, Dict, Set
可变
可以在原地修改内容(id 不变)。
Int, Float, Str, Tuple
不可变
修改等于创建新对象。
示例说明:
不可变类型 (str)
s = "hello"
s.upper() # 返回 "HELLO",但 s 本身没变!
print(s) # 输出 "hello"
s = s.upper() # 必须重新赋值给 s
可变类型 (list)
lst = [1, 2, 3]
lst.append(4) # 直接修改了 lst
print(lst) # 输出 [1, 2, 3, 4]
- 类型转换 (Type Conversion)
Python 提供了内置函数在不同类型间转换。
显式转换
num_str = "123"
num = int(num_str) # 字符串 -> 整数
price = float("9.9") # 字符串 -> 浮点数
s = str(100) # 整数 -> 字符串
列表转元组(常用于保护数据)
my_list = [1, 2, 3]
my_tuple = tuple(my_list)
列表去重(转集合再转回来)
raw_data = [1, 2, 2, 3, 1]
clean_data = list(set(raw_data)) # [1, 2, 3]
- 如何检查类型?
x = 10
方法1: type() - 查看类型
print(type(x)) # <class 'int'>
方法2: isinstance() - 判断类型 (推荐)
if isinstance(x, int):
print("x 是整数")
总结
数据类型
关键字
例子
特点
整数
int
10
整数运算
浮点数
float
3.14
小数运算
字符串
str
"Hello"
文本,不可变
列表
list
[1, 2]
有序,可变,啥都能装
元组
tuple
(1, 2)
有序,不可变,只读
字典
dict
{"k": "v"}
键值对,查找快
集合
set
{1, 2}
无序,去重
熟练掌握这些类型及其特性(特别是可变性),是你成为 Python 高手的第一步。

浙公网安备 33010602011771号