前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >青少年编程:用Python探究数学(1)

青少年编程:用Python探究数学(1)

原创
作者头像
老齐
修改2020-05-25 10:26:03
1.1K0
修改2020-05-25 10:26:03
举报
文章被收录于专栏:老齐教室老齐教室

说明:本系列文章是为中小学生学习Python语言而编辑,在阅读本文之前,请已经做好如下准备:

  • 在本地计算已经配置Python开发环境
  • 能够开启Python自带的IDLE编辑器

对以上两点,若尚未达到,请自行参考网上有关资料。

画多边形

1966年,麻省理工的数学家Seymour Aubrey Papert和Wally Feurzeig设计了一种名为Logo的编程语言,其初衷是为了向儿童教授计算机编程技能,Logo一词源自希腊语逻各斯(logos)。在Logo语言中,有一只小海龟(turtle),通过向它发送命令,可以实现各种绘图操作。Python继承了Logo语言的这个特点,在它里面有一个名为turtle的内置模块,同样能够实现各种绘图操作。

下面就学习一下,如果用这只小海龟画一个多边形。

引入模块

首先,打开Python自带的IDLE编辑器,创建一个名为myturtle.py的文件。

要使用Python中的“海龟”,必须先要引入它。在刚才创建的文件中,写下第一行代码:

代码语言:txt
复制
from turtle import \*

这一行代码意味着从turtle模块汇总引入所有的函数。

  • from是一个关键词,表示从哪个模块引入函数
  • turtle是用来绘图的模块名称
  • import引入模块的关键词
  • \*表示所有的东西,即turtle模块中的所有内容都被引入到当前文件中

写完上面的代码,就保存文件。

**注意**:不要把文件命名为turtle.py,这个名称在Python中已经被模块turtle所在的文件占用了。你应该使用其他名称,比如myturtle.pyturtle2.py等等。

移动海龟

引入模块之后,就为后面的作图奠定了基础。想一想如何用铅笔作图?一定少不了的就是要让铅笔在纸面上移动起来。与此类似,我们也要先让海龟移动起来,它移动过程中的轨迹,就形成了图形。

此处,我们使用一个名为forward()的函数,实现位置的移动。接着上面一行,在文件中写第二行代码:

代码语言:txt
复制
forward(100)

forward()函数里面的参数100,表示要移动的距离。还是先看看效果再说。

保存文件,按F5键,会看到下图结果:

图中间的带有箭头的线段,就是刚才画出来的。从这我们可以看到,海龟的初始位置,是在屏幕的中间,按照forward(100)这个质量,它要向前(向右)移动100个像素那么远的距离。注意,默认我们看到的是箭头——没有海龟出现。并且,默认方向是水平向右。

如果你非要显示一个海龟,也不是不可以,再增加一行代码。下面显示文件myturtle.py的所有代码:

代码语言:txt
复制
from turtle import \*



forward(100)

shape("turtle")

**注意**:写代码的时候,大小写不要弄错,拼写不要弄错,引号不要弄错,都要在英文半角状态下。

再保存文件,并按下F5键,会看到小海龟和它走过的轨迹了。

改变方向

真实的海龟,不撞南墙不回头,是吗?不是,它会改变自己的行进方向的。在turtle模块中,也提供了改变方向的函数right()left(),从名称上就能猜测到,分别实现的是向右转和向左转。

继续编辑myturtle.py文件,增加两行:

代码语言:txt
复制
from turtle import \*



forward(100)

shape("turtle")

right(45)      # new

forward(150)   # new

跟前面的代码比较,增加了两行,并且在新增的两行后面都有# new,这个内容叫做**注释**,它是给人看的,就是告诉阅读这部分代码的人,这两行是新增的。在Python中,注释的的内容前面必须写上#,这样在执行这段程序的时候,计算机就把#及其以后的内容忽略了(直到本行结束)。

在新增的两行中,right(45)表示向右转45°,这里的“右”是相对于海龟前进的方向而言;forward(150)就是向前走150个像素,注意此时的方向。联合起来,就实现了向右转45°并走150个像素。

执行这个程序(按F5键),得到下图结果:

到目前为止,小海龟从屏幕的中间,水平向右(默认的向前)移动100个像素,然后向右转45°,再前进150个像素。

画正方形

利用forward()right()函数,能够画正方形,可以自己试试。下面是参考代码。

代码语言:txt
复制
from turtle import \*



forward(100)

shape("turtle")

right(90)     

forward(100)

right(90)     

forward(100)

right(90)     

forward(100)

当然,利用这两个函数,还能画其他图像。

前面提到了另外一个函数left(),与right()用法一样,只不过是向左转了,你也可以尝试一下。

上面代码画的是正方形,也就是正四边形,如果画正八边形,是不是就要把right()forward()两个函数重复更多次了呢?有没有更好的实现方法呢?请看下回分解。

👇👇👇</strong></p>

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 画多边形
    • 引入模块
      • 移动海龟
        • 改变方向
          • 画正方形
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档