同学们,欢迎来到我们的“编程农场”!在这里,你不再需要像传统农夫那样面朝黄土背朝天。你将化身为一名农场工程师,你的武器不是锄头,而是键盘上的代码!
在未来的几周里,我们将利用代码指挥无人机大军,完成从“自动浇水”到“32机协同收割南瓜”的壮举。而这一切的起点,就是掌握我们的“魔法咒语”——Python 语言。
🐍 一、 什么是 Python?(它的前世今生)
Python 的英文原意是“蟒蛇”,但它的诞生却和蛇没有任何关系。
诞生时刻: 1989 年的圣诞节期间,荷兰的一位程序员吉多·范罗苏姆(Guido van Rossum)为了打发无聊的假期,决定开发一种新的编程语言。
名字的由来: 吉多非常喜欢一个名叫《蒙提·派森的飞行马戏团》(Monty Python's Flying Circus)的喜剧节目,于是他直接用 Python 给这门语言命名。
它的地位: 今天,Python 已经是全球最受欢迎、应用最广泛的编程语言之一。从人工智能(AI)、大数据分析,到网站开发,到处都有它的身影。
🚜 二、 我们为什么要用 Python 种地?
在现实世界中,Python 擅长处理数据和自动化任务。在我们的编程农场里,Python 能帮我们干什么呢?
解放双手: 农场有32*32 这么大,手动点鼠标种地会让人崩溃。Python 可以让无人机自动巡航(比如我们以后会学到的高效“S形走位”)。
智能判断: Python 可以充当无人机的“大脑”。遇到杂草就拔掉,遇到干旱的土地就浇水,遇到成熟的果实才收割。
多机协同: 当你的农场做大做强后,我们可以用 Python 写出“母舰调度系统”,同时指挥成十上百架无人机一起工作,效率提升成百上千倍!
📏 三、 农场第一准则:Python 的“灵魂”——缩进
在向无人机下达命令时,你必须遵守 Python 最严格的规则:缩进(Indentation)。
1. 什么是缩进?
缩进就是代码行首的空白部分。
在人类的语言里,我们用“段落”来区分意思;而在 Python 的世界里,电脑是通过“缩进的空格数”来判断哪些代码是属于同一个任务小组的。
2. 缩进的黄金法则
遇到冒号
:必缩进: 当你使用“如果 (if)”、“循环 (for/while)”等带有冒号结尾的语句时,它下面的动作必须缩进。四个空格: 标准的缩进是按 4 下空格键(或者按 1 下键盘左侧的
Tab键)。必须对齐: 属于同一个级别的任务,前面的空格数量必须一模一样!
3. 农场实战演示
我们要给无人机下达一个指令:“如果脚下有植物可以收割,就把它收割掉。”
❌ 错误的写法(无人机会罢工并报错):
if can_harvest():
harvest() # 错误:电脑不知道 harvest 属于 if 管辖,因为没有缩进!
✅ 正确的写法(标准的农场魔法):
if can_harvest():
harvest() # 正确:缩进了4个空格,无人机明白只有在满足条件时才执行它
✅ 进阶的写法(区分层级):
if can_harvest():
harvest() # 动作 1:如果成熟了,就收割(受 if 控制)
print("丰收啦!") # 动作 2:收割完喊一句口号(受 if 控制)
move(North) # 动作 3:没有缩进!不管有没有收割,最后都会向北移动(不受 if 控制)
👨💻 四、 你的第一个农场代码练习
现在,让我们来热热身,尝试读懂并编写你的第一段无人机控制代码。
在这段代码中,我们将用到编程农场自带的几个基础指令(函数):
move(East):向东(右)移动一格。till():把脚下的草地翻成可以种植的泥土。plant(Entities.Bush):在脚下种一棵灌木。
【小挑战】: 请观察下面这段代码,数一数这里面有几个层级的“缩进”,并思考无人机执行完毕后,农场上会发生什么变化?
# 这是一个循环指令,会让下面的动作重复 5 次
for i in range(5):
if get_ground_type() == Grounds.Grassland:
till() # 第二层缩进:只有是草地时才翻土
plant(Entities.Bush) # 第一层缩进:每次循环都会种一棵灌木
move(East) # 第一层缩进:种完后向东走一步