变量的概念与命名规则
把变量想成存数据的盒子,搞定赋值操作和命名规则就行。
- 理解变量是存储数据的容器
- 掌握 = 赋值运算符
- 掌握 Python 变量命名规则
- 了解变量可以重新赋值
变量是什么?
想象你有几个贴了标签的盒子:一个写着「名字」,里面放着「小明」;一个写着「年龄」,里面放着 18。变量就是这些贴了标签的盒子——通过名字找到里面的数据。
程序运行时,数据得放在内存里。变量就是给这块内存起的名字,以后用这个名字就能取或者改里面的数据。没有变量,程序里的所有数据都只能写死,没法根据情况变化。
Python 里,= 叫「赋值符」,作用是把右边的值放进左边的变量里。读作「把 18 赋给 age」,别读成「age 等于 18」。判断相等得用 ==(两个等号),后面会讲。
赋值的执行过程
Python 赋值的执行顺序是固定的:先算等号右边的表达式,再把结果绑给左边的变量。这个顺序别搞反。
右边可以直接引用左边已经定义好的变量:
碰到 count = count + 1 别懵:等号右边的 count 是加之前的旧值,左边的 count 是加完要存进去的新值。这行代码就是「把 count 的值加 1,再存回 count 里」的意思。
变量可以重新赋值
盒子里的东西可以换掉,新值会覆盖旧值。变量的类型也可以改变——Python 允许你把一个整数变量重新赋值为字符串:
a = 3
b = a
a = 5
print(b)同时赋值多个变量
Python 支持一行给多个变量赋值,用着很顺手:
命名规则(必须遵守)
只能用字母、数字、下划线
不能以数字开头
不能用 Python 关键字(if、for、while、def、class、import、return 等)
大小写敏感:age 和 Age 是两个不同变量
# ✅ 正确
name = "小明"
user_age = 20
_private = True
student2 = "小红"
# ❌ 错误(取消注释会报错)
# 2name = "错" # 不能数字开头
# my-name = "错" # 不能有减号
# if = 10 # 不能用关键字Python 3 的关键字包括:False, None, True, and, as, assert, async, await, break, class, continue, def, del, elif, else, except, finally, for, from, global, if, import, in, is, lambda, nonlocal, not, or, pass, raise, return, try, while, with, yield。不要用这些词做变量名。
命名风格(建议遵守)
规则是必须遵守的,风格是大家约定俗成的。好的命名,能让别人——以及三个月后的你——不用反复琢磨,就看懂这段代码在做什么:
snake_case(蛇形命名):单词全小写,下划线连接。如 user_name、total_count——这是 Python 官方推荐。
名字要有意义:用 student_count 而不是 n,用 price 而不是 p。
常量用全大写:MAX_SIZE = 100、PI = 3.14159。
私有变量用下划线开头:_internal_data。
初学者常写 a = 1, b = 2 这种代码。专业开发者会写 width = 1920, height = 1080。好名字让代码不用写注释就能看懂。
真实项目里,变量命名是 Code Review 最常掰扯的点。就一个原则:要是得靠注释才能说清这个变量是干嘛的,名字就是起烂了。布尔变量用 is/has/can/should 开头,比如 is_active、has_permission;集合变量用复数,像 users、orders;字典用 key_to_value 的格式,比如 user_id_to_name。另外说句,Python 是动态类型语言,变量类型能随时改,但项目里乱改变量类型是大忌——代码会变得巨难维护。
以下哪个变量名是合法的?
执行 a, b = 1, 2 后再执行 a, b = b, a,结果是?
资深工程师加餐
底层原理 · 大厂视角 · 工程经验,点卡片展开
print 把对象交给 sys.stdout 写出,显示时默认调用对象的 __str__;在交互环境直接回显变量走的是 __repr__(更偏「给开发者看的表示」)。sep 改分隔符、end 改结尾、file 可重定向到文件。面试常追问:生产环境为什么用 logging 而不是 print?因为日志有级别、能落盘、可结构化、可统一关闭,print 只适合临时调试。
挑战任务
创建个人信息
创建变量 name 和 age,分别赋值你的名字和年龄,然后用 print 输出。
课后作业
个人名片
创建变量存储姓名、年龄、城市,用 print 输出一张名片。