海龟绘图很适合用来引导孩子学习编程。 最初来自于 Wally Feurzeig, Seymour Papert 和 Cynthia Solomon 于 1967 年所创造的 LOGO 编程语言。
请点击右上角“关注”按钮关注我们哟:跟着木辛老师学习Python编程知识,变身快乐的编程达人吧~
在接下来的几节课中,我们将通过使用turtle模块编写一些简单的程序来创建漂亮、复杂的视觉效果。
这个turtle模块我们暂且叫:小海龟吧。
这个小海龟呀,是一个虚拟的、不存在的,它只是屏幕上的一个小三角,就像带着一支钢笔一样,它无论走到哪里都会使用这个钢笔来绘制线条。就让我们呢来试一试吧!
使用小海龟作图到底有多简单呢?我们不仅能够只用几行代码就创建出非常绚丽的视觉效果,还可以跟随小海龟看看每行代码如何让它移动的。
海龟绘图最初来自Wally Feurzeig, Seymour Papert 和 Cynthia Solomon 于 1967 年所创造的 LOGO 编程语言。这是一个旨在帮助小朋友们快速接触编程,快速学习编程的项目。
所以使用小海龟作图能够帮我们迅速理解代码逻辑,快速掌握编程思想。
两个例子
为了验证我们刚才说的:简单的程序创建复杂且漂亮的视觉效果,我们试试几个例子吧
咱们运行下看看效果吧
咱们使用了9行代码就完成了如此绚丽的图形效果,小朋友是不是很惊讶呀?
那咱们再来看一看另一个例子哈
这个例子的代码稍微多一点,那实现的效果也会比较复杂,在这里木辛老师就不贴出效果图。有兴趣的小朋友们可以去看看:《Python艺术家:PyTurtle》里的《Python编程中的艺术家:python turtle 第7集》代码的效果吧。
程序如何工作
看了这么多绚丽多彩的视觉图形,大家想不想深入的了解他们,看看这些程序是怎么工作的呀?
下面呢,木辛老师就带着大家一起仔细的分析下程序吧
我们先从第一个实例开始:
import turtlestar = turtle.Turtle()for i in range(50): star.forward(50) star.right(144)turtle.done()
第一行,导入(import)了绘制小海龟图形的功能。这里就用到了咱们之前讲过模块的知识
传送门:Python小课堂第16课:只需要10分钟教会你怎样使用编程中的模块
这里导入的就是已经编写好了的代码,这是编程工作最让人激动的一个事情了。
如果我们编写了一些很有意思并且很有用的代码,可以把他分享给其他的人,同时也可以自己重用它。
当我们使用
import turtle
的时候,就表示我们的程序能够使用Python程序员编写的模块了。
在实例效果图或者视频中,大家看到的小小的黑色箭头就是咱们可爱的小海龟了!它在屏幕上移动的时候就会使用钢笔进行绘画了。
接下来一行
star = turtle.Turtle()
是告诉计算机,我们将要使用star这个变量做小海龟的实例。这样,我们在后续调用小海龟作图的动作的时候,只需要使用star直接唤起对应方法就可以。就可以控制小海龟在屏幕上移动,并使用钢笔进行绘图了。
然后就是一个for循环的代码块,这个for循环需要遍历50次,也就是说for循环的代码块里的代码会被执行50次呢。
传送门:Python小课堂 第十课之转呀转 转圈圈咱们可以进入之前课程再复习一下for循环的知识
在这里,木辛老师再换一个角度讲一下:
这句代码
for i in range(50):
说明,我们创建了一个循环(loop),他会重复的执行一组指令(一次又一次,一遍又一遍地循环这些代码行)。
这个特定的循环使用range()函数设定了一个范围,其中包含0~49,总共50个数字(计算机总是从0开始计数的!)。
在这个循环中,字母i遍历了范围中的每一个数字。因此i从0开始,然后变为1, 然后是2,以此类推,直到49为止,一共会执行50个步骤。
在这里,我们把i叫做变量(variable)。变量存储了在程序进行的过程中可以修改的一个值。
在接下来,我们看到了代码缩进,这种编程风格是Python独有的,这个缩进之后的代码块,就是要被for循环遍历的一个部分了。
在该循环中,这些代码会被执行50次;每次i从0~49的范围中获取一个新的数字的时候,这个代码块都会被执行一遍,直到达到50次。
木辛博士说
LOGO编程语言创建于1967年,这是一种教育用编程语言,在50年之后的今天,它仍然用来教授基本的编程,也是小朋友们比较喜爱的一种编程语言。简单易学,效果炫酷。是不是呀?
发生了什么
咱们现在进入for循环的代码块看看究竟吧。
star.forward(50)
命令forward(x)会让咱们的小海龟的钢笔在屏幕上向前移动x个点;也就是说,咱们这个语句会让小海龟向前移动50个点。
然后紧接着,
star.right(144)
咱们命令小海龟向右转144°。
由于这是一个for循环,程序继续运行并且回到了循环的开始位置。
计算机将i加上1之后,又重新执行刚才的语句,直到循环结束。
最后一句代码的意思很明显了,就是告诉小海龟:咱们的工作做完了,可以休息了。
这样,我们第一个例子就讲完了;小朋友们想一下,这个例子有没有可以改进的地方呀?
稍微改进了一下
咱们的第二个例子的大体逻辑和第一个例子很像,但是做出来的效果比第一个例子还要炫酷。
咱们只是在其中的两个地方做了一点点手脚
painter.pencolor("blue”)
这一句代码的意思是我们让小海龟将钢笔的颜色改成了蓝色。从此,小海龟路过的地方,绘制出来的图形就都是蓝色的了,是不是很有意思呀?
我们今天的课程就先到这里了,大家是不是又收获了一些非常有意思的知识呀?
下节课呢,我们会再深入的讲解一些新的编程思路,也会给大家演示一些更加绚丽和好玩的视觉效果。大家会更深入的了解到我们的小海龟。