什么是 Python 变量?先别急着背概念
在 Python 中,变量并不是一个“盒子”,而是一个“标签”。
它指向内存中的某个对象,这个设计非常 Pythonic,也直接影响了后面你对类型和作用域的理解。
x = 10
这行代码的真实含义是:
? 名字 x 指向了一个值为 10 的对象。
如果你是完全零基础,建议先系统过一遍 Python 的基础语法,可以参考这篇非常适合新手的文章:
? Python 基础语法详解(附示例):零基础也能看懂
一句大实话:
变量不难,难的是你以为它很简单。

Python 变量的定义规则(别让低级错误拖后腿)
1. 变量命名规范(这是职业素养)
Python 对变量名的规则并不复杂,但非常讲究“约定俗成”:
- 只能包含:字母、数字、下划线
- 不能以数字开头
- 区分大小写
- 不能使用关键字(如
if、for、class)
推荐风格(PEP 8):
user_name = "Alice"
total_price = 99.9
别小看命名,企业级代码里,命名质量≈维护成本。
写给未来的你,也是写给同事。
2. 变量赋值的几种常见方式
单变量赋值
age = 18
多变量同时赋值(高效又优雅)
a, b, c = 1, 2, 3
链式赋值(慎用)
x = y = z = 0
在复杂项目中,链式赋值容易降低可读性,稳一点总没错。
Python 变量的类型:动态但不随便
Python 是动态类型语言,变量本身没有类型,对象才有类型。
1. 使用 type() 查看变量类型
x = 10
print(type(x)) # <class 'int'>
这不是炫技,而是调试时的“救命技能”。
2. 常见 Python 数据类型一览
(1)数值类型
int:整数float:浮点数complex:复数(用得不多,但很 Python)
price = 9.99
count = 3
(2)字符串(str)
name = "Python"
字符串是不可变类型,这一点会直接影响变量的行为。
(3)布尔类型(bool)
is_active = True
在条件判断中,它就是你的“业务开关”。
(4)列表(list)
numbers = [1, 2, 3]
可变类型,灵活但要小心副作用。
(5)元组(tuple)
point = (10, 20)
不可变,安全感拉满。
(6)字典(dict)
user = {"name": "Tom", "age": 18}
真实项目里,字典几乎无处不在。

变量与可变 / 不可变对象:这是分水岭
这一部分,很多初学者会“似懂非懂”,但你一旦理解,就能少掉 80% 的坑。
1. 不可变对象(immutable)
- int
- float
- str
- tuple
a = 10
b = a
a = 20
此时 b 仍然是 10,因为 a 指向了新对象。
2. 可变对象(mutable)
- list
- dict
- set
list1 = [1, 2]
list2 = list1
list1.append(3)
此时 list2 也会变。
这不是“坑”,是设计,只是你要知道。
Python 变量作用域:LEGB 规则一锤定音
说到 Python 变量作用域,只记住四个字母就够了:
LEGB
- L:Local(局部)
- E:Enclosing(嵌套)
- G:Global(全局)
- B:Built-in(内置)
Python 查找变量时,按这个顺序一路找下去。
1. 局部变量(Local)
def func():
x = 10
print(x)
只在函数内部有效,出了门就不认你。
2. 全局变量(Global)
x = 5
def func():
print(x)
能用,但不建议滥用。
在企业级项目里,全局变量是“风险资产”。
3. global 关键字(慎重使用)
x = 10
def func():
global x
x = 20
这相当于“直接改公司制度”,能不用就不用。
4. 嵌套作用域(Enclosing)
def outer():
x = 10
def inner():
print(x)
inner()
闭包的基础,后面学装饰器一定会遇到。
5. 内置作用域(Built-in)
print(len("Python"))
len 就来自 Built-in。
变量使用中的常见坑(真踩过,不忽悠)
- 在函数里误修改全局变量
- 可变对象作为默认参数
- 命名覆盖内置函数(如
list = [])
如果你已经开始系统学习 Python,建议结合完整路线来规划,而不是东一榔头西一棒子:
? Python 学习路线:从入门到就业完整指南
结合官方与实战:变量不是背出来的
如果你想进一步验证或深入理解,下面两个资源非常值得收藏:
它们对 Python 变量作用域 的解释非常严谨,也符合实际开发场景。
写在最后:基础不花哨,但决定上限
Python 变量,看似简单,实则是所有高级特性的地基。
写代码就像做生意,底层逻辑稳了,上层才跑得快。
如果你希望持续夯实 Python 基础、查资料不迷路,可以把这个站点作为入口:? Python下载
一句掏心窝子的建议:
别急着学框架,先把变量、类型、作用域吃透。
慢,就是快。