15 分钟
Python 入门

变量的概念与命名规则

把变量想成存数据的盒子,搞定赋值操作和命名规则就行。

  • 理解变量是存储数据的容器
  • 掌握 = 赋值运算符
  • 掌握 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 是两个不同变量

Python
# ✅ 正确
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 是动态类型语言,变量类型能随时改,但项目里乱改变量类型是大忌——代码会变得巨难维护。

找 Bug变量名大小写错误:Name 和 name 是两个不同的变量,Name 没有被定义过。
name = "小明" print(Name)
配对题变量名合法性判断
选择题

以下哪个变量名是合法的?

选择题

执行 a, b = 1, 2 后再执行 a, b = b, a,结果是?

填空题填写空白处的代码
name "小明" = 25 print(name) print(age)

资深工程师加餐

底层原理 · 大厂视角 · 工程经验,点卡片展开

print 把对象交给 sys.stdout 写出,显示时默认调用对象的 __str__;在交互环境直接回显变量走的是 __repr__(更偏「给开发者看的表示」)。sep 改分隔符、end 改结尾、file 可重定向到文件。面试常追问:生产环境为什么用 logging 而不是 print?因为日志有级别、能落盘、可结构化、可统一关闭,print 只适合临时调试。

挑战任务

创建个人信息

简单+50 XP

创建变量 name 和 age,分别赋值你的名字和年龄,然后用 print 输出。

创建个人信息
2 个测试用例

课后作业

个人名片

中等+25 XP

创建变量存储姓名、年龄、城市,用 print 输出一张名片。

个人名片
1 个测试用例