什么是变量?
变量就是一个贴了标签的盒子。你把数据(数字、文字等)放进去,以后用标签名就能找到它、用上它。
每个变量的创建,都包括变量的标识,名称和数据这些信息。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
等号= 用来给变量赋值。
等号= 运算符左边是一个变量名,等号= 运算符右边是存储在变量中的值。
a = 10
读作:把 10 放进名叫 a 的盒子里。以后写 a,Python 就去盒子里把 10 拿出来用:
print(a) # 输出 10
三个关键点
① 变量名 = 标签,可以随便起(但别太随便)
name = "小明" # 文字用引号
age = 18 # 数字不用引号
price = 9.9 # 小数也行
② 盒子里的东西能换
x = 5
x = 10 # 现在 x 是 10 了,老的 5 被覆盖
print(x) # 10
③ 一个变量可以"复制"给另一个
a = 10 # 这个a = 10是文章最开始写的那个
b = a # 把 a 盒子里的值(10) 复制一份放进 b
print(b) # 10
a = 10
b = a
a = 99
print(b) # 还是 10,因为 b 存的是当时的值
让我们做个生活类比:变量就像带名字的抽屉,name 抽屉放"小明",age 抽屉放 18,你想知道他几岁,就"打开 age 抽屉"看一眼。
为什么要有变量?
如果没有变量,你每次都得重写死数据,变量就是编程里最最基础的积木。
# 没变量:每次都写 18
print(18)
if 18 > 10: ...
# 万一他明年 19 了,你得改 N 个地方
# 有变量:改一处就行
age = 19
print(age)
if age > 10: ...
多个变量赋值
Python 允许你同时为多个变量赋值。多个变量赋值这块 Python 有好几个"偷懒"写法。
① 一行给多个变量赋值(最常用)
a, b, c = 1, 2, 3
print(a, b, c) # 1 2 3
左边三个名字,右边三个值,按顺序一一对应装盒。比写三行省事多了。
② 多个变量赋同一个值
x = y = z = 0
print(x, y, z) # 0 0 0
适合初始化计数器、开关之类的。注意这里用的是= 号,不是, 号。
③ 交换两个变量(超好用)🌟
别的语言要借个临时变量,Python 一行搞定,不用临时变量,干净利落。
a = 5
b = 10
a, b = b, a # 交换!
print(a, b) # 10 5
④ 拆包(unpacking)—— 从列表/元组里取值(看不懂没关系)
nums = [10, 20, 30]
x, y, z = nums
print(x, y, z) # 10 20 30
还能用 * 把剩下的打包:
first, *rest = [1, 2, 3, 4, 5]
print(first) # 1
print(rest) # [2, 3, 4, 5]


简单数据类型
数据类型这块是地基,说个核心概念:每个数据都有自己的"类型"——Python 得知道它是数字还是文字,才能决定能做什么运算。用 type() 可以随时查:
print(type(10)) # <class 'int'> 整数
print(type("你好")) # <class 'str'> 字符串
数据类型有哪些?
1️⃣ int —— 整数 (就是没有小数点的数字,正负都行)
age = 18
count = -5
big = 1000000
2️⃣ float —— 浮点数(带小数,哪怕写成 10.0 也是 float,不是 int)
price = 9.9
pi = 3.14159
3️⃣ str —— 字符串(必须用引号包起来,单双引号都行,还能用三引号写多行)
name = "小明"
msg = 'Hello'
poem = """床前明月光
疑是地上霜"""
4️⃣ bool —— 布尔值(只有两个值:True(真)和 False(假),首字母大写)
is_student = True
has_money = False
True == 1、False == 0,但别混着用,容易把自己绕晕。5️⃣ None —— 空值(什么都没有,表示"没有值 / 还没赋值")
result = None
数据类型可转换
不同类型能互相转:
int("123") # 123 字符串→整数
float("3.14") # 3.14 字符串→浮点
str(100) # "100" 数字→字符串
为什么重要?
不同类型的"能耐"不一样:
- 数字能加减乘除
- 字符串能拼接、切片(
"hello"[0]得"h") - 布尔值用来做判断(
if is_student:)
搞混类型是最常见的报错来源,比如 "18" + 1 会炸(文字不能加数字),得先 int("18") + 1。
举例说明

点击运行后,提示错误:
TypeError: can only concatenate str (not "int") to str
a 是字符串 "100",b 是整数 20,Python 不会自动把文字当数字加,所以报 unsupported operand type(s) for +: 'int' and 'str'。这就是"类型不匹配"最经典的报错。
变量的命名和使用
在 Python 中使用变量时,需要遵守一些规则和指南。违反这些规则会引发错误,指南旨在让你编写的代码更容易阅读和理解。
- 变量名只能包含数字、字母、下划线。变量名可以字母或下划线打头,但不能以数字打头。例如,将变量命名为 a_1,但不能将其命名为 1_a 。
- 变量名不能包含空格,但可以使用下划线来分割其中的单词。例如,变量名 a_b 可行,但变量名 a b 会引发错误。
- 不要将 Python 关键字和函数名用作变量名,不要使用 Python 保留用于特殊用途的单词,如 print 。
- 变量名应既简短且具有描述性。例如:name 比 n 好,student_name 比 s_n 好等等。
- 慎用小写字母l和大写字母O,因为它们可能会被人看错成数字1和0。
注释
注释就是写给人看的“小纸条”,Python 运行时会直接跳过它、当没看见。最早那段 name = "小明" # 文字用引号 里 # 后面的那句,就是注释。
注释分为单行注释和多行注释。
单行注释:#
最常用, # 号后面整行都是注释。
# 这是一行注释,Python 不执行


多行注释
多行注释 Python 跟别的语言不太一样,重点先说:Python 没有像 C / Java 那种 /* ... */ 的"块注释"符号。 所以"多行注释"是靠约定实现的,有两招。
招式一:每行都加 #(最正统)
# 这是第一行说明
# 这是第二行说明
# 这是第三行说明
x = 10
一行一个 #,本质还是多个单行注释拼起来。
招式二:三引号 ''' 或 """
'''
这是一段
可以多行的
说明文字
'''
但严格说,这不是"注释",是一个字符串。Python 会真的创建一个字符串、然后因为没被用到就扔掉。通常无害,所以大伙儿拿它当多行说明用。
正确用法(推荐):放在函数 / 文件最开头当"说明文档"(docstring)
def add(a, b):
'''把两个数相加并返回结果'''
return a + b
#。一句话总结就是:多行注释 = 每行 #(配合 Ctrl + / 批量加);三引号留给函数/文件的说明文档用。
最后在举个例子,把今天学习的内容整合一下。

跑出来应该是这样的。

多变量赋值:type_filter, pref_filter, page = ... 一行搞定,打印正常
数据类型:type(total).__name__ 显示 float,因为 9.9 * 3 是小数
你踩过的坑已经会绕了:int(a) + b 得 120,不是 "100100"
交换变量:x, y = y, x 后变成 2 1
None / bool:None 和 True 都正常打印
总价:29.700000000000003 —— 理论上 9.9 × 3 = 29.7,电脑却打出一长串尾巴。这是浮点数精度问题(计算机用二进制存小数,像 1/3 除不尽一样会有误差)。以后看到这种"多出来的小数",别慌,不是你写错了。正式算钱时可以用 round(29.7, 2) 保留两位小数,或改用 decimal 模块。