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

《与孩子一起学编程》11.2 可变循环

关灯直达底部

固定的数(比如 range 函数中使用的数)也称为常数(constant)。如果在一个 for 循环的 range 函数中使用常数,程序运行时循环总会运行相同的次数。在这种情况下,我们称循环次数是硬编码的(hard-coded),因为它在你的代码中被定义了,而且永远不会改变。这往往不是我们真正想要的。

有时我们希望循环次数由用户来决定,或者由程序的另一部分决定。对于这种情况,我们就需要一个变量。

例如,假设你要建立一个太空神枪手游戏。只要有外星人被消灭就要重绘屏幕。必须有某个计数器来跟踪还剩下多少外星人,另外只要屏幕更新,就需要循环处理剩下的外星人,在屏幕上画出他们的图像。每次玩家消灭一个外星人时外星人数就会改变。

因为我们还没有学习如何在屏幕上画外星人,下面先给出一个使用可变循环的简单示例程序:

numStars = int(raw_input ("How many stars do you want? "))for i in range (1, numStars):     print '*',>>> ====================== RESTART ======================>>>How many stars do you want? 5* * * *

这个程序会询问用户想要多少个星号,然后使用一个可变循环准确地打印这些星号。嗯,只能算基本准确!我们想要 5 个星号,可是只得到了 4 个!唉呀,我们忘记了 for 循环不是达到 range 函数中第二个数时才停止,它在比这个数少 1 时就停止了。所以需要对用户的输入加 1。

还有一种方法可以完成同样的工作,就是从 0 开始循环计数,而不是 1。(这一点在第 8 章提到过。)这种做法在编程中很常用,下一章会解释为什么。先来看看这个循环是怎样的:

numStars = int(raw_input ("How many stars do you want? "))for i in range(0, numStars):     print '*',>>> ====================== RESTART =====================>>>How many stars do you want? 5* * * * *