本节书摘来自异步社区《像计算机科学家一样思考Python》一书中的第4章,第4.2节,作者[美]Allen B. Downey,赵普明 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。
4.2 简单重复
你可能会写下如下代码(除去新建TurtleWorld和等待用户的操作外):
fd(bob, 100)
lt(bob)
fd(bob, 100)
lt(bob)
fd(bob, 100)
lt(bob)
fd(bob, 100)
使用for语句,可以更紧凑地实现同样功能。把下面的例子加到mypolygon.py中,并再运行一次:
for i in range(4):
print 'Hello!'
你可能会看到如下输出:
Hello!
Hello!
Hello!
Hello!
这是for语句的最简单用法,后面我们会看到更多的用法。但这样已经足够重写刚才的画正方形的程序了。请重写后再接着阅读。
下面是使用for语句绘制正方形的程序:
for i in range(4):
fd(bob, 100)
lt(bob)
for语句的语法和函数定义类似。它也有一个以冒号结束的语句头,并有一个缩进的语句体。语句体可以包含任意数量的语句。
for语句有时被称为循环(loop),因为执行流程会遍历语句体,之后从语句体的最开头重新循环执行。在这个例子里,语句体执行了4次。
这个版本的代码和之前的绘制正方形的代码其实还稍有不同,因为在最后一次循环后它多做了一次左转。多余的左转稍微多消耗了点时间,但因为每次循环做的事情都一样,也让代码更简练。这个版本的代码还有一个效果,程序执行完之后,乌龟会回归到初始的位置,并朝向初始相同的方向。