《编程农场》教程 (1):告别手动点击,用 while 循环让无人机“永动”!
欢迎来到《编程农场》(The Farmer Was Replaced)!在这个游戏里,你不再是一个面朝黄土背朝天、靠疯狂点击鼠标来种地的老农。你手里掌握着一台高科技无人机,而你的武器,是代码。
在游戏的最开始,你面前只有一块孤零零的草地,上面会长出杂草(干草)。 你可以手动在左侧的终端里输入 harvest()(收割),然后点击运行。无人机会听话地挥舞一次镰刀,把草割掉。
但是,草长了一茬又一茬,难道我们要一直手动点下去吗?当然不!今天,我们将学习编程中最强大的魔法之一——循环。
什么是 while 循环?
在计算机科学中,while 循环就像是一个不知疲倦的“仓鼠轮”。只要满足了特定的条件,它就会一直把里面的代码重复执行下去。
而在《编程农场》中,我们最常用的是一个绝对死循环:while True:(直译为:当“真”的时候)。因为“真”永远是“真”,所以它会永远、永远、永远地运行下去,直到你强制点击停止按钮。
实战演练:单地块无限收割机
现在,清空你左侧的代码框,输入以下这三行代码:
while True:
if can_harvest():
harvest()
点击运行!你会看到无人机安静地停在那个方块上,只要地上长出了杂草,它就会瞬间一刀割掉。你的干草数量开始自动上涨了!恭喜你,你写出了人生中第一个自动化流水线!
核心代码拆解
让我们一句一句来看看这台“永动机”是如何运作的:
while True:这就是我们刚才说的“永动机”开关。注意True的首字母T必须大写,而且最后一定要加上一个英文冒号:,它代表着“接下来的事情,给我一直做”。if can_harvest():这叫条件判断(如果...就...)。can_harvest()是无人机的内置雷达,它会检测脚下的草有没有长熟。这就让我们的无人机变聪明了:只有当草长出来时,才准备挥动镰刀。(注意末尾也有冒号:哦!)harvest()这是实际干活的指令(收割)。它必须放在if的下面。
⚠️ 新手必看排坑指南:Python 的灵魂——“缩进”
仔细看上面的代码,第二行比第一行往右退了几个空格,第三行又比第二行退了几个空格。这叫做缩进(Indentation)。
在《编程农场》使用的 Python 语言中,缩进不仅是为了好看,它是代码的层级关系!
因为
if缩进在while下面,说明“判断”是循环的一部分。因为
harvest()缩进在if下面,说明“收割”是判断成功后才执行的动作。
如果你写成这样,游戏就会直接报错罢工:
# 错误示范:没有缩进
while True:
if can_harvest():
harvest()
提示:在游戏里,你可以按键盘上的 Tab 键来快速完成缩进!
结语: 现在,你的无人机已经可以全自动帮你收割干草了。你可以挂机去喝杯咖啡,看着右上角的数字不断跳动。但这仅仅是开始,当我们的农场扩张到 3x3 甚至更大时,一直停在原地的无人机就显得力不从心了。
敬请期待下一课:让无人机动起来!遍历整个农场。