首页 » 与孩子一起学编程 » 与孩子一起学编程全文在线阅读

《与孩子一起学编程》8.5 按步长计数

关灯直达底部

到目前为止,我们的计数循环都是每次迭代时计数增 1。如果希望循环按步长为 2 来计数该怎么做?或者步长为 5 呢?或者 10 呢?还有,如果想反向计数,又该怎么做呢?

range 函数可以有一个额外的参数,利用这个参数可以把步长从默认的 1 改为不同的值。

术语箱
参数(argument)就是使用类似 range 的函数时放在括号里的值。我们说,向函数传入了参数。有时也用形参(parameter)这个词,如传递形参。我们将在第 13 章了解更多关于函数、参数和形参的内容。

我们想在交互模式中尝试几个循环。键入第一行时,由于末尾有冒号,IDLE 会自动为你缩进下一行,因为它知道 for 循环后面需要有一个代码块。完成这个代码块后,按两次回车键。试试看:

>>> for i in range(1, 10, 2):    print i13579

这里向 range 函数增加了第 3 个参数 2。现在循环按步长 2 计数。再来试一个:

>>> for i in range (5, 26, 5):    print i510152025

这是按步长 5 来循环的。反向计数呢?

>>> for i in range(10, 1, -1):    print i1098765432

range 函数中的第 3 个参数是负数时,循环会向下计数,而不是向上计数。应该记得,循环会从一个数开始,向上(或向下)直到(但不包括)第二个数,所以在最后一个例子中,我们只向下计数到 2,而不是 1。

可以利用这一点来建立一个倒计时的定时器程序。只需要再增加两行代码。在 IDLE 中打开一个新的编辑器窗口,键入代码清单 8-6 中的程序。试着运行这个程序。

代码清单 8-6 准备好了吗?

先不用担心这个程序里还没有讲到的内容,比如说 importtimesleep。所有这些内容都会在后面的章节中讲清楚。你只需要试着运行代码清单 8-6 中的程序,看看它是怎么工作的。这里的关键是 range(10,0,-1) 部分,它会让循环从 10 反向计数到 1。