
主题配图 · 来源与许可
适用对象: 小学高年级到初中、刚接触 Python 的学生;可作为“编程农场”类课程之外的通用练习。
学习目标: 理解变量是“贴了标签的盒子”;会用 for 按名单重复、用 while 按条件重复;能读懂并修改一段小农场程序。
先说明:下面用的是标准 Python,可以在常见的 Python 3 环境运行。它不是“编程农场”的游戏内接口,也不调用任何游戏函数;如果你在某个课程或游戏里学习,请以那个产品的说明为准。
初学时可以把变量想成标签,但更准确地说,Python 的名字会绑定到对象;同一个对象也可能有多个名字。crop = "胡萝卜" 表示把字符串放进名为 crop 的盒子;water = 0 表示放一个整数。之后写 water = water + 1,就是取出旧值、加一、再放回去。变量名要能看懂:crop 比 a 好,water 比 x 好;名字区分大小写,也不能用数字开头。
for 循环适合“按名单逐个做”。运行下面这段:
field = ["胡萝卜", "胡萝卜", "番茄", "番茄", "番茄"]
for crop in field:
print("给", crop, "浇水")
field 是一个列表,for 按顺序取出每个元素放进 crop,缩进的那一行就重复执行一次,于是打印出五条浇水记录。运行前先猜一猜会打印几行,再对照结果。想统计收成,可以用字典给每种作物记数:
field = ["胡萝卜", "胡萝卜", "番茄", "番茄", "番茄"]
harvest = {"胡萝卜": 0, "番茄": 0}
for crop in field:
harvest[crop] = harvest[crop] + 1
print("收成:", harvest)
每遇到一个作物,就把字典里对应的数字加一。harvest[crop] += 1 是同样的意思,只是写法更短。
while 循环适合“条件为真就一直做”:
water = 0
while water < 3:
water = water + 1
print("第", water, "次浇水")
print("浇完了")
water 从 0 开始,只要小于 3 就进入循环;每次加一,三次后条件不再成立,循环结束。如果忘了写 water = water + 1,条件永远为真,程序会停不下来,这时可以按 Ctrl+C 中断。写循环前先问自己:什么时候停?哪一步让条件靠近停止?for 和 while 不是谁更高级,而是看任务:名单确定时用 for,停止条件更自然时用 while。
可以把练习变成任务卡:第一关,新建变量 farmer,打印一个虚构的农场主名字;第二关,把 field 改成六个作物条目并运行;第三关,同时给 field 和 harvest 加一种新作物并统计;第四关,用 while 浇五次水;第五关,先预测输出再运行,对比自己想得对不对。常见坑是:for、while 行末漏了冒号,循环体没有缩进,变量名拼错,以及以为 range(3) 是 1、2、3(其实是 0、1、2)。
小练习
把
field改成你喜欢的五种作物,打印完整的浇水日志。增加一个
total变量,统计一共有多少个作物。不运行程序,只在纸上划掉
while里的water = water + 1,解释它为什么无法自行停止。再确认你的编辑器中断按钮在哪里。
参考与延伸阅读
Python 教程:介绍:https://docs.python.org/zh-cn/3/tutorial/introduction.html
Python 教程:控制流工具:https://docs.python.org/zh-cn/3/tutorial/controlflow.html
Python 教程:数据结构:https://docs.python.org/zh-cn/3/tutorial/datastructures.html
本站编辑整理,DeepSeek 协助初稿,已核对并校订。教程中的有意报错示例用于观察错误;修正版才应正常完成。