变量与数据类型
本教程共 70 篇 · 第 7 篇 · 更新于 2026-07-22 · 约 4 分钟阅读
7. 变量与数据类型
本节目标:理解变量的本质,掌握 Python 的基本数据类型,学会用
type()查看类型。
变量是什么
变量可以理解为贴在数据上的「标签」。
a = 123
这行代码做了两件事:在内存中创建整数 123,然后把变量 a 指向它。a 不是盒子,而是贴在 123 这个对象上的标签。
再给 a 赋值:
a = 123
a = 'ABC'
第二行不是修改原来的 123,而是在内存中创建新字符串 'ABC',然后把 a 的指向改掉。原来的 123 如果没有其他变量引用,会被垃圾回收机制清理掉。
动态类型
Python 是动态类型语言。变量不绑定类型,值才有类型。同一个变量可以先后指向不同类型的数据:
x = 10 # x 是整数
x = 3.14 # x 变成浮点数
x = "hello" # x 变成字符串
这和 Java、C++ 等静态语言不同。静态语言定义变量时必须声明类型,之后不能改变。
Tip动态类型灵活,但也容易踩坑。大型项目里建议加类型注解(后面章节会讲),让代码更易维护。
基本数据类型
Python 有 6 种标准数据类型:
| 类型 | 名称 | 示例 | 是否可变 |
|---|---|---|---|
int | 整数 | 42, -100 | 不可变 |
float | 浮点数 | 3.14, -0.5 | 不可变 |
bool | 布尔值 | True, False | 不可变 |
str | 字符串 | "hello" | 不可变 |
list | 列表 | [1, 2, 3] | 可变 |
tuple | 元组 | (1, 2, 3) | 不可变 |
dict | 字典 | {"a": 1} | 可变 |
set | 集合 | {1, 2, 3} | 可变 |
Note「可变」指创建后能否修改内容。列表可以增删元素,字符串不能修改单个字符。后面章节会逐一深入讲解。
查看类型
用 type() 函数查看变量的类型:
>>> x = 10
>>> type(x)
<class 'int'>
>>> name = "Alice"
>>> type(name)
<class 'str'>
>>> items = [1, 2, 3]
>>> type(items)
<class 'list'>
isinstance() 可以判断变量是否属于某种类型:
>>> x = 10
>>> isinstance(x, int)
True
>>> isinstance(x, str)
False
isinstance() 比 type() 更灵活,因为它支持继承关系。自定义的子类也能被正确识别。
多变量赋值
Python 支持在一行里给多个变量赋值:
# 多个变量赋同一个值
a = b = c = 1
# 多个变量赋不同值
a, b, c = 1, 2, "hello"
第二种写法本质是「元组打包解包」。右边 1, 2, "hello" 是个元组,左边 a, b, c 把它拆开。
利用这个特性,不用临时变量就能交换两个值:
a, b = 10, 20
a, b = b, a # a 变成 20,b 变成 10
Tip这是我当年学 Python 时觉得最酷的特性之一。其他语言交换变量需要三行加一个临时变量,Python 一行搞定。
删除变量
用 del 语句删除变量引用:
x = 100
del x
print(x) # NameError: name 'x' is not defined
del 只是删掉标签,如果数据还有其他标签指向,数据本身不会被销毁。
来源:参考了 runoob「Python3 基本数据类型」、liaoxuefeng「数据类型和变量」、w3cschool「Python3 基本数据类型」等,改写后所得。