第一步 · 机器人闯关
怎样告诉计算机「到底要做什么」?
课程目录为什么需要它
计算机自己什么都不会做。程序 Program 就是一串指令,计算机一条一条、完全照写的去执行。在学任何 Python 规则之前,先要接受这一点:每一步都由你来决定。
这门课里你要指挥一个叫「小码」的小机器人。小码只听得懂几个指令,你写什么它就做什么,不多也不少。
直觉理解
想象你在电话里给一个在黑屋子里的朋友指路:「向前走一步。再走一步。停。」朋友看不到地图,所以每一步都得说出来。
小码就是这个朋友。指令 move() 的意思是「向前走一格」。要走三格,就说三遍:
move()
move()
move()后面的圆括号 () 表示「现在就做」。只写 move 不加括号,就像只说了「走」这个词,却没有让任何人去走。
定义
程序 Program
A program is a sequence of instructions that a computer executes in order, from top to bottom.程序是一串指令,计算机按从上到下的顺序依次执行。
函数调用 Function call
A function call runs a named piece of behaviour; in Python you write the name followed by parentheses, like move().函数调用就是执行一个有名字的动作;在 Python 里写成名字加圆括号,比如 move()。
这门课里机器人的每一个指令都是一次函数调用 Function call。
示例
走两步到旗子
在互动课里运行小码面朝右(东)。旗子在前面两格。点「运行」,看黄色高亮的那一行跟着机器人一起走。
move()
move()逐步执行
- L1第 1 行:小码向前走一格。程序不会跳着走。
- L2第 2 行:再走一格,小码到了旗子上。
- •没有更多的行了,程序结束。小码站在旗子上:成功。
多走了一步
在互动课里运行如果多给了一条指令会怎样?运行一下,看哪一行变红。
move()
move()
move()逐步执行
- L1小码走到空格上。
- L2小码走到旗子上。虽然到了终点,但程序还没写完。
- L3前面是墙,小码还是照做了,结果撞墙。计算机不会猜你的意思。
常见错误
忘了写括号
只写 move 不加 (),什么都不会发生:你只是提到了这个指令的名字。一定要写成 move()。
大小写和空格
Python 区分大小写。Move() 会报错,因为没有叫这个名字的指令。一律照抄 move()。
小测验
1. 小码最后停在哪里?
move()
move()查看答案
答案:B
两个 move() 就是正好两格。旗子在三格之外,所以小码停在旗子前一格。
2. 哪一行让小码撞墙?
move()
move()查看答案
答案:B
第 1 行走到旗子上,第 2 行要往墙里走,所以出错的是第 2 行。
动手练习
3 道练习,分三层:先预测程序的输出,再按新需求改程序,最后从零写一个。代码在浏览器里运行,提交马上判题。
- 预测输出先读再跑
不运行,先预测小码最后停在哪里。
- 改需求旗子挪远了
这段程序原来能走到 3 格外的旗子。现在旗子挪到了 5 格外,改一改程序,让小码走到旗子。
- 从零写往下走
这次小码面朝下(南)。不管小码朝哪边,
move()都是「向前」。自己写出整个程序。
本课术语
| 术语 | 中文 | 英文定义 |
|---|---|---|
| Program | 程序 | A sequence of instructions that a computer executes in order. |
| Instruction | 指令 | A single step that tells the computer to do one thing. |
| Function call | 函数调用 | Running a named action by writing its name followed by parentheses, such as move(). |