02. 变量魔盒
还记得上一章我们用 print() 在屏幕上显示了文字吗?那只是"说完就忘"。但如果想让计算机记住一些东西——比如你的名字、你的分数、或者你最喜欢的颜色——就需要用到变量了。
🧙 Python 魔法学院
你已掌握了「显现术」——但真正的法师需要记忆。想象你有一排闪着微光的魔法盒子,每个盒子上贴着一张羊皮纸标签,里面封印着不同的宝物:数字、文字、甚至整个清单。
今天你将学会「封印术」——把任何东西装进变量盒子,随时取用。这是你从学徒走向法师的第一步。
2.1 什么是变量?¶
📱 变量就像手机通讯录¶
打开你的手机通讯录——妈妈的名字对应妈妈的电话,班主任的名字对应班主任的电话。你存的时候只存一次,以后每次想打电话,点一下名字就行,根本不用再输号码。
Python 的变量也是一样的道理:你给一个值起个名字(mom_phone = "13800138000"),以后要用这个值的时候,直接用名字就行。存一次,用无数次。
📦 变量就像有标签的小盒子¶
想象你的桌子上有好多小盒子,每个盒子上贴了一个标签,盒子里装着东西。在 Python 中,变量就是贴了标签的盒子:
标签 = 变量名
盒子里的东西 = 变量的值
用一句话总结:变量 = 名字 + 值。你给一个值起了名字,以后就能随时叫出它。
💡 “=” 不是"等于":Python 里的
=是赋值的意思,读作"把……放进……“。name = "Alice"读作"把 Alice 放进 name 里”。
🎒 为什么需要变量?—— 一个书包的故事¶
假设你没有变量,每次要用你的名字,都只能直接写:
没问题吧?但如果你的名字有 50 处,明天你想改成"小红",你就得改 50 次!😱
现在看有了变量之后多轻松:
只要把第一行的 "小明" 改成 "小红",所有地方都自动更新。这就是变量的威力——改一次,处处生效。
🎮 Minecraft 里的变量¶
如果你玩 Minecraft,变量就像你的物品栏。物品栏的每个格子有编号(变量名),每个格子里放着不同的东西(值):第 1 格放剑,第 2 格放面包,第 3 格放火把。你随时可以换格子里的东西,也可以查看某个格子里是什么。
在 Python 里也是一样:sword = "钻石剑" 就是把 “钻石剑” 放进 sword 这个格子里!
2.2 变量的命名规则¶
给变量起名字就像给宠物取名——有些规矩要遵守:
| 规则 | 对的例子 | 错的例子 | 为什么错? |
|---|---|---|---|
| 只能用字母、数字、下划线 | my_score | my-score | 短横线不行 |
| 不能以数字开头 | name2 | 2name | 数字开头会混淆 |
| 区分大小写 | Name 和 name 是两个不同变量 | — | — |
| 不能用 Python 保留字 | my_class | class | class 是 Python 的关键字 |
💡 命名小技巧:变量名要有意义。
x = 18不如age = 18让人一眼秒懂。好的代码自己会"说话"。
💡 常见误区:这些变量名为什么不行?¶
| ❌ 错误写法 | 😢 为什么错了? | ✅ 正确写法 |
|---|---|---|
1st_place = "冠军" | 不能以数字开头!Python 会搞混你是写数字还是写变量名 | first_place = "冠军" |
my name = "小明" | 中间有空格!Python 看到空格就以为你写完了 | my_name = "小明" |
my-score = 100 | 短横线 - 在 Python 里是减号!Python 会以为你要做减法 | my_score = 100 |
class = "三年二班" | class 是 Python 的关键字(保留字),不能用作变量名 | class_name = "三年二班" |
print = 5 | print 是 Python 的内置函数名,你用变量覆盖了它,以后 print("你好") 就失效了! | my_number = 5 |
🧠 记住口诀:字母下划线开头,数字在后面,单词之间用下划线,不用短横线,不碰关键字。
🐶 像给宠物取名一样给变量命名¶
想想看:如果你养了一只狗叫"旺财",你不会叫它"这只有四条腿会叫的动物"对吧?变量也是一样——给它一个好名字,以后叫它就很方便:
| 😢 糟糕的变量名 | 😊 优秀的变量名 | 为什么? |
|---|---|---|
x | score | 不知道 x 是什么 |
a123 | student_count | 看了也不知道意思 |
thing | favorite_food | 太模糊,什么都可能是 |
data1 | birthday | 编号不如含义清晰 |
2.3 数字的四种类型¶
Python 中的数字就像不同类型的"量杯":
每种类别 Python 会自动识别,你不需要声明"这个是整数"——Python 很聪明。
📝 关于复数(complex):复数在高中和大学数学中会遇到,里面涉及虚数单位
j(数学里叫i)。对初学者来说,这个了解一下就行,现在只需要记住前三种:int(整数)、float(小数)、str(文字)。日常编程 99% 的时候只用到这三种。
🌟 这对我有什么用?
int整数:记录你游戏里的金币数、班级人数、考试分数
float小数:记录你的身高(1.45 米)、体重(38.5 公斤)、平均分(87.3)
bool真假:记录"是否通关"、“今天是否下雨”、“作业是否写完”
2.4 数字运算¶
Python 是个不折不扣的数学小天才:
💡 三个容易搞混的:
/是普通除法(有小数),//是整除(扔小数),%是取余数。
💰 实用场景:你能用这些运算符做什么?¶
场景一:计算平均分
场景二:分糖果(整除和取余)
🍬 思考一下:如果你是班长,班费 100 元要买 6 本笔记本,每本多少钱?剩下多少钱?试着自己写代码算出来!
🍬 用零食理解取余(%)¶
你有 10 颗糖,要分给 3 个朋友,每人一样多。每人能分到 3 颗(10 // 3 = 3),还剩下 1 颗(10 % 3 = 1)。这颗剩下的你可以自己吃掉!😋
🎲 动手试试:计算器大挑战¶
💡 试试看:把上面的长宽改成你课桌的尺寸(大概 60cm × 40cm),算出你课桌的面积和周长!
2.5 文字的世界:字符串¶
除了数字,计算机处理最多的就是文字。Python 里用引号包起来的内容叫字符串(string)。
🧩 字符串拼接就像搭积木¶
想象你有几块文字积木,+ 号就是胶水,把它们粘在一起:
"你好" + "," + "Alice" + "!" → "你好,Alice!"字符串的有趣玩法¶
💡 字符串加
+是拼接,乘*是重复:"哈" * 3会变成"哈哈哈"。
🤔 猜猜看:先猜结果,再运行!¶
在看下面代码之前,先别看输出,用脑子猜一猜每一行会打印什么?猜完了再点运行,看看你猜对了几题!
🎯 你猜对了几题?如果全对,说明你对字符串的理解已经很棒了!字符串的
*和+就像乐高积木——*是"复制粘贴",+是"拼在一起"。
🎵 试试字符串的乘法魔法¶
2.6 f-string:最优雅的字符串写法¶
Python 有一种特别优雅的写字符串方式,叫 f-string(f 代表 format):
f-string 让你不用再 + 来 + 去地拼接字符串,既好看又好写。
🧠 f-string 是如何工作的?¶
计算机看到 f"我叫{name}" 时,它会这样想:
第一步:看到字母 f,知道这是"格式化字符串"
第二步:看到 {name},知道要去找到 name 这个变量
第三步:把 name 的值替换进去
第四步:输出完整的句子:"我叫小明"2.7 🎮 趣味挑战:疯狂故事生成器¶
改几个变量,立刻生成一个搞笑故事:
💡 试试看:把上面的变量改一改,生成你自己的搞笑故事!改改
name、animal这些值,看看故事会变成什么样。
🏪 扩展挑战:零花钱计算器¶
💡 试试看:如果你每周零花钱涨到 80 元,能多存多少钱?如果少买一次零食呢?
2.8 动手练习¶
📋 参考答案(点击展开)
2.9 本章小结¶
| 你学到了什么 | 具体内容 |
|---|---|
| ✅ 变量 | 贴了标签的小盒子,用来储存数据 |
| ✅ 命名规则 | 字母数字下划线,不能数字开头,要有意义 |
| ✅ 数字类型 | 整数 (int)、浮点数 (float)、复数 (complex)、布尔 (bool) |
| ✅ 数学运算 | + - * / // % ** |
| ✅ 字符串 | 用引号包起来的文字,可以拼接、重复、替换 |
| ✅ f-string | 在字符串中优雅地嵌入变量:f"我叫{name}" |
🚀 下一章预告:你写的程序现在还是一条路走到底。下一章,我们将学习条件判断——让程序学会"如果……就……"的逻辑,自己做出选择!
2.10 📚 参考资料¶
| 资源 | 链接 | 说明 |
|---|---|---|
| Python 官方教程 — 变量与类型 | docs | 官方对变量和数据类型的详细说明 |
| Real Python — Python 变量 | realpython | 深入理解 Python 变量的内存模型 |
| Python 字符串格式化对比 | realpython | f-string 完全指南 |
本章内容基于 Python 官方教程 改编,遵循 PSF License 许可。