Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

PyFirst

02. 变量魔盒

还记得上一章我们用 print() 在屏幕上显示了文字吗?那只是"说完就忘"。但如果想让计算机记住一些东西——比如你的名字、你的分数、或者你最喜欢的颜色——就需要用到变量了。

🧙 Python 魔法学院

你已掌握了「显现术」——但真正的法师需要记忆。想象你有一排闪着微光的魔法盒子,每个盒子上贴着一张羊皮纸标签,里面封印着不同的宝物:数字、文字、甚至整个清单。

今天你将学会「封印术」——把任何东西装进变量盒子,随时取用。这是你从学徒走向法师的第一步。


2.1 什么是变量?

📱 变量就像手机通讯录

打开你的手机通讯录——妈妈的名字对应妈妈的电话,班主任的名字对应班主任的电话。你存的时候只存一次,以后每次想打电话,点一下名字就行,根本不用再输号码。

Python 的变量也是一样的道理:你给一个值起个名字(mom_phone = "13800138000"),以后要用这个值的时候,直接用名字就行。存一次,用无数次

📦 变量就像有标签的小盒子

想象你的桌子上有好多小盒子,每个盒子上贴了一个标签,盒子里装着东西。在 Python 中,变量就是贴了标签的盒子

Python
14
准备加载编辑器...
🔧 正在准备编程环境...0%
等待编辑器...
等待 Python 环境...

用一句话总结:变量 = 名字 + 值。你给一个值起了名字,以后就能随时叫出它。

💡 “=” 不是"等于":Python 里的 =赋值的意思,读作"把……放进……“。name = "Alice" 读作"把 Alice 放进 name 里”。

🎒 为什么需要变量?—— 一个书包的故事

假设你没有变量,每次要用你的名字,都只能直接写:

Python
14
准备加载编辑器...
🔧 正在准备编程环境...0%
等待编辑器...
等待 Python 环境...

没问题吧?但如果你的名字有 50 处,明天你想改成"小红",你就得改 50 次!😱

现在看有了变量之后多轻松:

Python
14
准备加载编辑器...
🔧 正在准备编程环境...0%
等待编辑器...
等待 Python 环境...

只要把第一行的 "小明" 改成 "小红",所有地方都自动更新。这就是变量的威力——改一次,处处生效

🎮 Minecraft 里的变量

如果你玩 Minecraft,变量就像你的物品栏。物品栏的每个格子有编号(变量名),每个格子里放着不同的东西(值):第 1 格放剑,第 2 格放面包,第 3 格放火把。你随时可以换格子里的东西,也可以查看某个格子里是什么。

在 Python 里也是一样:sword = "钻石剑" 就是把 “钻石剑” 放进 sword 这个格子里!


2.2 变量的命名规则

给变量起名字就像给宠物取名——有些规矩要遵守:

规则对的例子错的例子为什么错?
只能用字母、数字、下划线my_scoremy-score短横线不行
不能以数字开头name22name数字开头会混淆
区分大小写Namename 是两个不同变量
不能用 Python 保留字my_classclassclass 是 Python 的关键字
Python
14
准备加载编辑器...
🔧 正在准备编程环境...0%
等待编辑器...
等待 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 = 5print 是 Python 的内置函数名,你用变量覆盖了它,以后 print("你好") 就失效了!my_number = 5

🧠 记住口诀字母下划线开头,数字在后面,单词之间用下划线,不用短横线,不碰关键字。

🐶 像给宠物取名一样给变量命名

想想看:如果你养了一只狗叫"旺财",你不会叫它"这只有四条腿会叫的动物"对吧?变量也是一样——给它一个好名字,以后叫它就很方便:

😢 糟糕的变量名😊 优秀的变量名为什么?
xscore不知道 x 是什么
a123student_count看了也不知道意思
thingfavorite_food太模糊,什么都可能是
data1birthday编号不如含义清晰

2.3 数字的四种类型

Python 中的数字就像不同类型的"量杯":

Python
14
准备加载编辑器...
🔧 正在准备编程环境...0%
等待编辑器...
等待 Python 环境...

每种类别 Python 会自动识别,你不需要声明"这个是整数"——Python 很聪明。

📝 关于复数(complex):复数在高中和大学数学中会遇到,里面涉及虚数单位 j(数学里叫 i)。对初学者来说,这个了解一下就行,现在只需要记住前三种:int(整数)、float(小数)、str(文字)。日常编程 99% 的时候只用到这三种。

🌟 这对我有什么用?

  • int 整数:记录你游戏里的金币数、班级人数、考试分数

  • float 小数:记录你的身高(1.45 米)、体重(38.5 公斤)、平均分(87.3)

  • bool 真假:记录"是否通关"、“今天是否下雨”、“作业是否写完”


2.4 数字运算

Python 是个不折不扣的数学小天才:

Python
14
准备加载编辑器...
🔧 正在准备编程环境...0%
等待编辑器...
等待 Python 环境...

💡 三个容易搞混的/ 是普通除法(有小数),// 是整除(扔小数),% 是取余数。

💰 实用场景:你能用这些运算符做什么?

场景一:计算平均分

Python
14
准备加载编辑器...
🔧 正在准备编程环境...0%
等待编辑器...
等待 Python 环境...

场景二:分糖果(整除和取余)

Python
14
准备加载编辑器...
🔧 正在准备编程环境...0%
等待编辑器...
等待 Python 环境...

🍬 思考一下:如果你是班长,班费 100 元要买 6 本笔记本,每本多少钱?剩下多少钱?试着自己写代码算出来!

🍬 用零食理解取余(%)

你有 10 颗糖,要分给 3 个朋友,每人一样多。每人能分到 3 颗(10 // 3 = 3),还剩下 1 颗(10 % 3 = 1)。这颗剩下的你可以自己吃掉!😋

🎲 动手试试:计算器大挑战

Python
14
准备加载编辑器...
🔧 正在准备编程环境...0%
等待编辑器...
等待 Python 环境...

💡 试试看:把上面的长宽改成你课桌的尺寸(大概 60cm × 40cm),算出你课桌的面积和周长!


2.5 文字的世界:字符串

除了数字,计算机处理最多的就是文字。Python 里用引号包起来的内容叫字符串(string)。

Python
14
准备加载编辑器...
🔧 正在准备编程环境...0%
等待编辑器...
等待 Python 环境...

🧩 字符串拼接就像搭积木

想象你有几块文字积木,+ 号就是胶水,把它们粘在一起:

"你好"  +  ","  +  "Alice"  +  "!"  →  "你好,Alice!"

字符串的有趣玩法

Python
14
准备加载编辑器...
🔧 正在准备编程环境...0%
等待编辑器...
等待 Python 环境...

💡 字符串加 + 是拼接,乘 * 是重复:"哈" * 3 会变成 "哈哈哈"

🤔 猜猜看:先猜结果,再运行!

在看下面代码之前,先别看输出,用脑子猜一猜每一行会打印什么?猜完了再点运行,看看你猜对了几题!

Python
14
准备加载编辑器...
🔧 正在准备编程环境...0%
等待编辑器...
等待 Python 环境...

🎯 你猜对了几题?如果全对,说明你对字符串的理解已经很棒了!字符串的 *+ 就像乐高积木——* 是"复制粘贴",+ 是"拼在一起"。

🎵 试试字符串的乘法魔法

Python
14
准备加载编辑器...
🔧 正在准备编程环境...0%
等待编辑器...
等待 Python 环境...

2.6 f-string:最优雅的字符串写法

Python 有一种特别优雅的写字符串方式,叫 f-string(f 代表 format):

Python
14
准备加载编辑器...
🔧 正在准备编程环境...0%
等待编辑器...
等待 Python 环境...

f-string 让你不用再 ++ 去地拼接字符串,既好看又好写。

🧠 f-string 是如何工作的?

计算机看到 f"我叫{name}" 时,它会这样想:

第一步:看到字母 f,知道这是"格式化字符串"
第二步:看到 {name},知道要去找到 name 这个变量
第三步:把 name 的值替换进去
第四步:输出完整的句子:"我叫小明"

2.7 🎮 趣味挑战:疯狂故事生成器

改几个变量,立刻生成一个搞笑故事:

Python
14
准备加载编辑器...
🔧 正在准备编程环境...0%
等待编辑器...
等待 Python 环境...

💡 试试看:把上面的变量改一改,生成你自己的搞笑故事!改改 nameanimal 这些值,看看故事会变成什么样。

🏪 扩展挑战:零花钱计算器

Python
14
准备加载编辑器...
🔧 正在准备编程环境...0%
等待编辑器...
等待 Python 环境...

💡 试试看:如果你每周零花钱涨到 80 元,能多存多少钱?如果少买一次零食呢?


2.8 动手练习

Python
14
准备加载编辑器...
🔧 正在准备编程环境...0%
等待编辑器...
等待 Python 环境...
📋 参考答案(点击展开)
Python
14
准备加载编辑器...
🔧 正在准备编程环境...0%
等待编辑器...
等待 Python 环境...

2.9 本章小结

你学到了什么具体内容
✅ 变量贴了标签的小盒子,用来储存数据
✅ 命名规则字母数字下划线,不能数字开头,要有意义
✅ 数字类型整数 (int)、浮点数 (float)、复数 (complex)、布尔 (bool)
✅ 数学运算+ - * / // % **
✅ 字符串用引号包起来的文字,可以拼接、重复、替换
✅ f-string在字符串中优雅地嵌入变量:f"我叫{name}"

🚀 下一章预告:你写的程序现在还是一条路走到底。下一章,我们将学习条件判断——让程序学会"如果……就……"的逻辑,自己做出选择!

2.10 📚 参考资料

资源链接说明
Python 官方教程 — 变量与类型docs.python.org/3/tutorial/introduction.html官方对变量和数据类型的详细说明
Real Python — Python 变量realpython.com/python-variables深入理解 Python 变量的内存模型
Python 字符串格式化对比realpython.com/python-f-stringsf-string 完全指南

本章内容基于 Python 官方教程 改编,遵循 PSF License 许可。