
2.4 漂亮的螺旋线
课程内容
本节课主要通过绘制复杂的螺旋线来深入学习for循环和range()函数的用法。深入了解循环的运行过程。
知识点
(1)for循环的用法
(2)range()函数的用法
(3)绘制螺旋线
用到的基本指令
(1)import
(2)turtle.Pen()
(3)forward()
(4)right()
(5)for循环
(6)range()
前面章节中讲了如何绘制正五边形,本节将结合for循环绘制一个五边形螺旋线。螺旋线的特点是有很多个边,每个边的长度都不一样,是逐渐增加的。比如第1边长为1,第2边长为2,第3边长为3,依次增加。如果用for循环,则每循环一次向前走的距离增加1,如图2-14所示。

图2-14 绘制螺旋线

图2-14 绘制螺旋线(续)
上面的程序是如何执行的呢?
1)首先导入海龟绘图模块,并将变量t设置为海龟的画笔。
2)Python第一次执行循环时,for循环先访问range列表中的第一个元素0(range(100) 会生成从0到99的连续的数),并将0存储在变量x中,变量x的值变为0。
3)执行t.forward(x)语句让海龟画笔向前移动x步。由于x=0,所以画笔向前移动0步。
4)执行t.right(72)语句,让海龟画笔向右转动72°。
5)执行第二次循环,for循环访问range列表中的第二个元素1,并将1存储在变量x中,变量x的值变为1。接着画笔向前移动1步,画笔向右转动72°。
6)执行第三次循环,for循环访问range列表中的第三个元素2,并将2存储在变量x中,变量x的值变为2,接着画笔向前移动2步,画笔向右转动72°。
7)这样一次一次地继续执行,当for循环遍历range中最后一个元素99时,变量x的值变为99,画笔向前移动99步,并向右转动72°。这样就画出一个漂亮的螺旋线。
上面的程序中,如果我们将每次绘制旋转的角度改变一下会绘制出什么图形呢?如图2-15所示。

图2-15 不同旋转角度绘制的图形