人人都能学编程
English 开始学习
课程 1 · 零基础入门第 1 课 / 共 10 课免费阅读

第一步 · 机器人闯关

怎样告诉计算机「到底要做什么」?

课程目录

为什么需要它

计算机自己什么都不会做。程序 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()
逐步执行
  1. L1第 1 行:小码向前走一格。程序不会跳着走。
  2. L2第 2 行:再走一格,小码到了旗子上。
  3. •没有更多的行了,程序结束。小码站在旗子上:成功。

多走了一步

在互动课里运行

如果多给了一条指令会怎样?运行一下,看哪一行变红。

move()
move()
move()
逐步执行
  1. L1小码走到空格上。
  2. L2小码走到旗子上。虽然到了终点,但程序还没写完。
  3. L3前面是墙,小码还是照做了,结果撞墙。计算机不会猜你的意思。

常见错误

忘了写括号

只写 move 不加 (),什么都不会发生:你只是提到了这个指令的名字。一定要写成 move()。

大小写和空格

Python 区分大小写。Move() 会报错,因为没有叫这个名字的指令。一律照抄 move()。

小测验

1. 小码最后停在哪里?

move()
move()
  1. A旗子上
  2. B旗子前一格
  3. C撞墙
查看答案

答案:B

两个 move() 就是正好两格。旗子在三格之外,所以小码停在旗子前一格。

2. 哪一行让小码撞墙?

move()
move()
  1. A第 1 行
  2. B第 2 行
  3. C不会撞墙
查看答案

答案:B

第 1 行走到旗子上,第 2 行要往墙里走,所以出错的是第 2 行。

动手练习

3 道练习,分三层:先预测程序的输出,再按新需求改程序,最后从零写一个。代码在浏览器里运行,提交马上判题。

  1. 预测输出先读再跑

    不运行,先预测小码最后停在哪里。

  2. 改需求旗子挪远了

    这段程序原来能走到 3 格外的旗子。现在旗子挪到了 5 格外,改一改程序,让小码走到旗子。

  3. 从零写往下走

    这次小码面朝下(南)。不管小码朝哪边,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().