用画画的方式学习Python编程

(整期优先)网络出版时间:2023-02-14
/ 2

用画画的方式学习Python编程

余洪成

南京师范大学附属中学江宁分校    江苏省南京市  211100

【摘要】:2017年7月,国务院印发了《新一代人工智能发展规划》提出,实施全民人工智能教育项目,在中小学阶段设置人工智能的相关课程,并逐步推广编程教育。2018年4月,国家教育部印发了《教育信息化2.0行动计划》,提出要完善课程方案和课程标准,充实适应时代发展的人工智能和编程课程内容。在这个背景之下,我校在小学部开展了Python编程的校本课程探索,为了更好地适应小学生的特点,围绕Python Turtle画图进行了整个课程体系的设计。

【关键词】:Python;turtle;海龟;编程

在人工智能的发展领域,Python编程已经成为当今世界最受欢迎的编程语言之一。当孩子们具备了以ScratchJr、Scratch、Kitten为代表的图形化编程基础后,在代码编程方面,Python编程已经成为最好的选择之一。越来越多的中小学开始开设Python编程相关的校本课程。

1.Python编程介绍

1.1.什么是Python

Python语言的创始人是荷兰的吉多·范罗苏姆(Guido van Rossum)。1989年圣诞节,Guido在阿姆斯特丹开发了这一款编程语言。Python中的turtle模块受启发于在欧美有着广泛基础的LOGO语言,它语言形式直接,通过一组简单的指令就可以指挥计算机在屏幕上绘制出极具现代感或复杂抽象的图案。

1.2.编程环境搭建

1.2.1.获取软件安装包

登录Python官方网站下载Python安装包。https://www.python.org/downloads/

1.2.2.软件安装流程

双击打开安装包,将Python添加到环境变量,安装完成。

2.Python turtle画图课

2.1.第一个海龟画图的程序

2.1.1.编写程序

下面就让我们一起来使用Python turtle来编写第一个程序。在一个新的IDLE窗口中输入如下代码并将其保存为Square.py。

# Square.py - Draw a square

import turtle

t= turtle.Pen()

for x in range(100):

    t.forward(x)

t.left(90)

当运行这段程序的时候,我们会得到一幅漂亮整齐的正方形。

2.1.2.程序是如何工作的?

程序的第一行是注释,注释是以井号(#)开头。第2行导入(import)了绘制海龟图形的功能。当我们输入了import turtle,就表示我们的程序能够使用那些Python程序员所写的代码。

程序的第3行是t=turtle.Pen(),它告诉计算机,我们将使用字母t表示海龟的钢笔。这使得我们只需要输入t.forward(),而不是turtle.Pen().forward()。字母t是告诉海龟做事的一种快捷方式。

第4行最为复杂,我们创建了一个循环,它重复执行了100次。x叫作变量。变量存储了在程序进行的过程中可以修改的值,我们在所编写的所有程序中,几乎都要用到变量。接下来的两行代码缩进了,这意味着它们位于该循环之中,并且和上面的代码在一起。

当程序初次执行的时候,x是0,钢笔不会转动,最后一行代码t.left(90)让海龟向左转动90°。由于for循环,程序继续运行并且回到初始位置。计算机加1后将x移动到范围中的下一个值,因为1仍然是位于0~99的范围中,循环继续。这样一次次执行,当x到达99,也就是循环的最后一次迭代,钢笔围绕着正方形螺旋线的外围画了一条长长的线条。

2.2.旋转的海龟

2.2.1.编写程序

下面让我们再来看一看当修改了程序中某一个数值的时候,会发生什么?我们将程序中最后一行修改为t.left(91),将其保存为Square2.py。

# Square2.py - Draw a square

import turtle

t= turtle.Pen()

for x in range(100):

    t.forward(x)

t.left(91)

当运行这段程序的时候,我们会得到方形的旋转图案。

2.2.2.程序是如何工作的?

当每次都向左旋转90°会创建一个完美的正方形,而每次左转91°,会将正方形向外转一点点,由于我们下一次再旋转的时候,已经发生了偏离,所以随着程序的不断进行,新的图形就不像正方形了。它更像一个漂亮的螺旋形,像一个楼梯一样。

2.3.海龟画圆

2.3.1.编写程序

海龟不只是可以画直线,它还可以画出很多有趣的形状。下面让我们再来修改一行代码:t.forward(x)。这一行表示控制钢笔向前移动x个像素并且绘制一条笔直的线段。下面,我们将要绘制一个固定大小(或者半径)的圆的命令。我们将t.forward(x)修改为t.circle(x),如下面的代码所示。

# Circle.py - Draw a circle

import turtle

t= turtle.Pen()

for x in range(100):

    t.circle(x)

t.left(91)

当运行这段程序的时候,我们会得到圆形的旋转图案。

2.3.2.程序是如何工作的?

我们可以发现圆形的螺旋线比正方形的螺旋线要大一些,而且前者大约是后者的两倍。这是因为t.circle(x)使用x作为半径,这也就是圆心到边缘的距离,那么圆的直径是正方形的边长的两倍。

2.4.添加颜色

2.4.1.编写程序

这些线的形状很不错,但是,如果色彩再丰富一些,是不是更好看呢?下面,我们可以加一行代码,从而把钢笔的颜色设置为红色。

# Square3.py - Draw a square

import turtle

t= turtle.Pen()

t.pencolor("red")

for x in range(100):

t.forward(x)

t.left(91)

当运行这段程序的时候,我们会得到一幅彩色的图片。

2.4.2.程序是如何工作的?

我们可以尝试用一些其他的颜色(如“blue”或者“green”),我们可以通过Turtle库使用数百种不同的颜色(访问:https://www.tcl.tk/man/tcl8.4/TkCmd/colors.html)。

2.4.3.四色螺旋线

在设计这样的图形之前,我们需要考虑一下算法。我们先思考一下步骤:

(1)导入turtle模块;

(2)告诉电脑设置什么颜色;

(3)设置循环,绘制100条线段;

(4)为螺旋线的每一边选择不同的颜色;

(5)向前移动海龟以绘制每一条边;

(6)将海龟左转,准备好下一条边;

首先,我们需要一个定义颜色的列表。

colors = ["red","yellow","blue","green"]

下面我们需要在每次遍历绘制循环的时候修改钢笔颜色。我们输入如下代码并运行。

import turtle

t= turtle.Pen()

colors = ["red","yellow","blue","green"]

for x in range(100):

    t.pencolor(colors[x%4])

    t.forward(x)

    t.left(91)

4种颜色的列表发挥作用了,我们可以看到如下的效果。

除此以外,我们还可以使用turtle画出更多有趣的图形。

3.使用turtle学习Python的优势

3.1.程序简单易上手

小学生只要有一定的图形化编程基础,加上有一定的英文打字基础,就可以轻松驾驭Python turtle编程。相比其他的编程语言,更多容易上手。图形化的结果呈现,更加容易激发小学生的兴趣。和前期学习过的电脑绘图也有了前后衔接的关系。

3.2.和几何图形的结合,数形结合。

学习的过程,也是不断思考过程。在图形绘制的时候,帮助学生不断学习计算机绘图的原理,同时数据的变化对于图形的影响,让学生更加直观地感受到编程学习的乐趣。

4.总结

编程教育之路任重而道远,在人工智能的时代,如何才能培养出适应时代发展的面向未来的人才,需要我们不断地探索和努力。作为老师,更多的要培养学生算法和计算思维,这才是提升学生学习能力的不二法宝,是学生创造力的基础和源泉。

参考文献:

[1]陈斌.Python_turtle的多学科创意编程[J].中国科技教育,2019(6):225

[2]毛京宇.有趣的Python_turtle绘图_[J].中国科技教育,2019(6):27.