科创科普:程序里的「收纳盒」——变量与数据类型

科创科普:程序里的「收纳盒」——变量与数据类型

一、从一个生活场景说起

假设你是一个小卖部的售货员。顾客买了 3 支笔,每支 2 元,你要算出总价;接着又来了一位顾客,买了 5 本本子,每本 3 元,你还要再算一次。如果你每次都重新掰手指,很快就会算乱。

聪明的做法是:先准备几个「收纳盒」,一个盒子写上「单价」,一个盒子写上「数量」,一个盒子写上「总价」。每次把新的数字放进对应的盒子里,再用同样的公式算一遍。这样无论来多少顾客,你的脑子都不用重新设计流程。

计算机编程里的「变量」,就是这种贴了标签的收纳盒。

二、什么是变量

变量(Variable)是程序中用来存放数据的地方,它有三个要素:

  1. 名字(标签):告诉程序这个盒子叫什么,比如 score、price、name。名字要起得有意义,score 比 a1 好得多。
  2. 值(内容):盒子里装着的数据,比如 100、"小明"、True。
  3. 类型(盒子形状):盒子能装什么,取决于数据的类型。

在 Scratch 里,点击「变量」分类,选择「建立一个变量」,输入名字 score,就出现了一个可以显示的记分板;在 Python 里,写一句 score = 0,就相当于造好了这个盒子并且放进了一个 0。

三、三种最常见的类型

类型 名称 举例 常见用途 Scratch 对应
整数/小数 数字型 3、2.5、-7 计分、计算、坐标 数字类型的变量
字符串 文本型 "小明"、"Hello" 名字、对话、提示语 变量里存的文字
布尔值 真假型 True、False 判断条件是否成立 侦测类积木的返回值

注意一个容易混淆的地方:数字 3 和文字 "3" 看起来一样,性质却完全不同。数字 3 可以参与计算 3 + 2 = 5;文字 "3" 做加法时,有的语言会把它拼接成 "32",有的语言会直接报错。

四、变量怎么用:赋值、读取、修改

变量的使用只有三种动作:

  • 赋值:把数据放进盒子。Python 写 age = 12;Scratch 用「将 变量 设为 12」。
  • 读取:把盒子里的内容拿出来用。print(age) 会把 12 打印出来。
  • 修改:把盒子里的内容换掉。age = age + 1 的意思是「先读出原来的 age,加 1,再放回同一个盒子」。

age = age + 1 这句话初学者最容易懵:等号右边的 age 是旧值,左边的 age 是新值。它等价于「我又长大了一岁」。程序的计数器、游戏里的血量减少、闯关得分增加,全靠这种「自己加自己」的写法。

五、案例一看:Scratch 计分板

目标:小猫接到苹果加 10 分,接到炸弹减 5 分。

  1. 新建变量 score,初始设为 0。
  2. 小猫的代码:当绿旗被点击 → 将 score 设为 0。
  3. 苹果角色:当角色被点击 → 将 score 增加 10 → 播放声音「pop」。
  4. 炸弹角色:当角色被点击 → 将 score 增加 -5(Scratch 里用负数实现减法)。

运行几次后你会发现:分数永远只用一个公式在变,你完全不用为「第几次接苹果」写不同的代码。这就是变量的价值——把变化的数字和固定的逻辑分开。

六、案例二看:Python 打招呼与打折计算

name = "小明" price = 120.0 discount = 0.8 final = price * discount print(name + "应付:" + str(final) + "元")

输出结果:小明应付:96.0元

这里 str(final) 的作用是把数字 96.0 变成文字 "96.0",才能和前面的文字拼接起来。很多同学第一次运行时看到报错 TypeError: can only concatenate str (not "float") to str,原因就是把数字直接和文字相加了。

七、例题解析

例题:下面这段程序的输出是什么?

a = 5 b = a a = a + 3 print(a, b)

解析:第一行盒子里装 5;第二行把 a 的值复制一份放进 b,此时 b 也是 5;第三行读出 a 是 5,加 3 得到 8,放回 a。所以 a 变成 8,而 b 仍然是 5。答案是 8 5。

这道题的关键是理解:b = a 是「复制一份」,不是「b 从此跟着 a 一起变」。变量之间不会自动同步。

八、三个常见错误

  1. 变量没初始化就使用。Python 里直接写 print(total) 会报 NameError,必须先 total = 0。
  2. 类型混用。数字和字符串相加减,要么用 str() / int() 转换,要么避免混搭。
  3. 名字起得太随意或者前后不一致。Scratch 对大小写不敏感,但 Python 里 Score 和 score 是两个不同的变量,写错就凭空多出一个空盒子。

九、小练习

练习 1:写出下面程序的输出。 x = 10 y = x * 2 x = y - x print(x, y)

练习 2:在 Scratch 中设计一个「生命值」变量,初始 3,小猫碰到尖刺减 1,当生命值为 0 时说「游戏结束」两秒。

练习 3:下面的代码为什么报错?如何修改? num = "8" print(num + 5)

参考答案: 练习 1:x = 20 - 10 = 10,y = 20,输出 10 20。 练习 2:建立变量 life 设为 3;尖刺脚本:当绿旗被点击 → 重复执行 → 如果碰到小猫 → 将 life 增加 -1 → 等待 1 秒;小猫脚本:如果 life = 0 → 说「游戏结束」2 秒。 练习 3:字符串 "8" 不能直接和数字 5 相加,应改为 print(int(num) + 5),输出 13;若想拼接文字则写 print(num + str(5)),输出 85。两种写法得到的不是同一个结果,要先想清楚自己要计算还是拼接。

十、小结

变量是编程世界最基础的容器,它让程序从「一次性指令」变成「可以反复使用的规则」。记住三句话:名字要有意义,类型要先想清楚,赋值是复制而不是绑定。把这三句话用熟,后面学循环、函数、列表都会顺畅得多。