青少年编程:用Python探究数学(1)
2020-05-25
说明:本系列文章是为中小学生学习Python语言而编辑,在阅读本文之前,请已经做好如下准备:
- 在本地计算已经配置Python开发环境
- 能够开启Python自带的IDLE编辑器
对以上两点,若尚未达到,请自行参考网上有关资料。
画多边形
1966年,麻省理工的数学家Seymour Aubrey Papert和Wally Feurzeig设计了一种名为Logo的编程语言,其初衷是为了向儿童教授计算机编程技能,Logo一词源自希腊语逻各斯(logos)。在Logo语言中,有一只小海龟(turtle),通过向它发送命令,可以实现各种绘图操作。Python继承了Logo语言的这个特点,在它里面有一个名为turtle
的内置模块,同样能够实现各种绘图操作。
下面就学习一下,如果用这只小海龟画一个多边形。
引入模块
首先,打开Python自带的IDLE编辑器,创建一个名为myturtle.py
的文件。
要使用Python中的“海龟”,必须先要引入它。在刚才创建的文件中,写下第一行代码:
1 | from turtle import * |
这一行代码意味着从turtle
模块汇总引入所有的函数。
from
是一个关键词,表示从哪个模块引入函数turtle
是用来绘图的模块名称import
引入模块的关键词*
表示所有的东西,即turtle
模块中的所有内容都被引入到当前文件中
写完上面的代码,就保存文件。
注意:不要把文件命名为turtle.py
,这个名称在Python中已经被模块turtle
所在的文件占用了。你应该使用其他名称,比如myturtle.py
、turtle2.py
等等。
移动海龟
引入模块之后,就为后面的作图奠定了基础。想一想如何用铅笔作图?一定少不了的就是要让铅笔在纸面上移动起来。与此类似,我们也要先让海龟移动起来,它移动过程中的轨迹,就形成了图形。
此处,我们使用一个名为forward()
的函数,实现位置的移动。接着上面一行,在文件中写第二行代码:
1 | forward(100) |
在forward()
函数里面的参数100
,表示要移动的距离。还是先看看效果再说。
保存文件,按F5
键,会看到下图结果:
图中间的带有箭头的线段,就是刚才画出来的。从这我们可以看到,海龟的初始位置,是在屏幕的中间,按照forward(100)
这个质量,它要向前(向右)移动100个像素那么远的距离。注意,默认我们看到的是箭头——没有海龟出现。并且,默认方向是水平向右。
如果你非要显示一个海龟,也不是不可以,再增加一行代码。下面显示文件myturtle.py
的所有代码:
1 | from turtle import * |
注意:写代码的时候,大小写不要弄错,拼写不要弄错,引号不要弄错,都要在英文半角状态下。
再保存文件,并按下F5
键,会看到小海龟和它走过的轨迹了。
改变方向
真实的海龟,不撞南墙不回头,是吗?不是,它会改变自己的行进方向的。在turtle
模块中,也提供了改变方向的函数right()
和left()
,从名称上就能猜测到,分别实现的是向右转和向左转。
继续编辑myturtle.py
文件,增加两行:
1 | from turtle import * |
跟前面的代码比较,增加了两行,并且在新增的两行后面都有# new
,这个内容叫做注释,它是给人看的,就是告诉阅读这部分代码的人,这两行是新增的。在Python中,注释的的内容前面必须写上#
,这样在执行这段程序的时候,计算机就把#
及其以后的内容忽略了(直到本行结束)。
在新增的两行中,right(45)
表示向右转45°,这里的“右”是相对于海龟前进的方向而言;forward(150)
就是向前走150个像素,注意此时的方向。联合起来,就实现了向右转45°并走150个像素。
执行这个程序(按F5
键),得到下图结果:
到目前为止,小海龟从屏幕的中间,水平向右(默认的向前)移动100个像素,然后向右转45°,再前进150个像素。
画正方形
利用forward()
和right()
函数,能够画正方形,可以自己试试。下面是参考代码。
1 | from turtle import * |
当然,利用这两个函数,还能画其他图像。
前面提到了另外一个函数left()
,与right()
用法一样,只不过是向左转了,你也可以尝试一下。
上面代码画的是正方形,也就是正四边形,如果画正八边形,是不是就要把right()
、forward()
两个函数重复更多次了呢?有没有更好的实现方法呢?请看下回分解。
专注于软件和AI的公众号
老齐教室
若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏
关注微信公众号,读文章、听课程,提升技能