通过向海龟(turtle)发送命令,用户可以直观地学习程序的运行过程,因此它很适合于儿童学习,当然也可以用于几何教学。我以前就在一些学习机上运行过LOGO环境,还带着自己的孩子在上面做画,估计她现在早就忘了这段故事了。
![a9d94137bac9c56804694eac2b05567e.png](https://i-blog.csdnimg.cn/blog_migrate/902babaa85fd25c05ae82268b4d9db76.jpeg)
强大的Python语言肯定也不会遗忘小海龟,在Python环境中已经内置好了turtle模块,你只需要在Python IDLE中输入2行语句,就可以让小海龟就位。
import turtleturtle.reset()
这时屏幕上会弹出一个图形窗口,那个朝向右方的小箭头就代表小海龟。
![6135ca7a81176018796f1c735001a629.png](https://i-blog.csdnimg.cn/blog_migrate/e032b3ee6cf4ac5428a7bfcab45953c9.jpeg)
现在试着给小海龟发送命令,forward(100)表示向前方走100步,计算机上1步就是1个像素,left(90)表示向左转90度。
咱们来个郭冬临在小品《问路》中的“左转左转左转左转,好像是一个圈呦”:
turtle.forward(100)turtle.left(90)turtle.forward(100)turtle.left(90)turtle.forward(100)turtle.left(90)turtle.forward(100)turtle.left(90)
当然画出来的是一个正方形。
![0eee1ad1620feb93224720333829a0cf.png](https://i-blog.csdnimg.cn/blog_migrate/9ef170b1c43ded97246611f782d45edd.jpeg)
我们已经在《零基础学编程007:FOR循环》里学过了循环语句,可以把代码简化为重复4次的前进和左转,效果一样:
for i in range(4) : turtle.forward(100) turtle.left(90)
这些指令虽然简单,但你可别小瞧它,一段计算机程序也就是顺序、条件和循环这三种程序结构。如果再运用上递归算法,能够产生许多奇妙的图案。试着复制并粘贴这段代码到Python IDLE中,看看它能画出什么图形?
from turtle import *def f(length, depth): if depth == 0: forward(length) else: f(length/3, depth-1) right(60) f(length/3, depth-1) left(120) f(length/3, depth-1) right(60) f(length/3, depth-1)f(500, 4)