现在很多学校都开设了Scratch课程,学生可以利用Scratch创作丰富的作品,然而Scratch之后的图形化编程语言学习什么内容,是一线老师和Scratch官方共同关注的问题。

就目前来看可以选择的有C语言、Logo、Python和SmallBasic。C语言虽然经典,但是学了很久也不能做出可视的成型的作品,极大的降低了孩子们的积极性;而Python语言已经做为编程入门语言得到了广泛的任何,相比于C语言,入门简单,而且Python可以用很少的代码完成复杂的工作,在以后的工作学习中都会用到。

从Scratch到Python的递进之道

对于一般人来说C语言是屠龙之技,即便是在大学里的C语言通修课也是如此,而且目前部分大学的已经开始慢慢的把通识课的入门编程语言改成Python了。

Python作为一种文本编程语言,对于小学生来说还是有一定难度的,所以从Scratch到Python肯定需要一个过渡,所以在学习了Scratch基础上,来学习Python是合适的。

学习任何一种编程语言,首先要了解诸如变量、循环、分支判断这些基本的程序结构,经过Scratch的学习,学生对于这些概念基本掌握,在学习Python的时候,用Scratch来描述程序,作为思维可视化的工具,有助于学生快速的掌握Python。

下面我们就开始Python的学习,话说如果一开始就讲Python的变量肯定会被吐槽,全部是文本,没什么意思啊,那么们就从窗口开始。

安装Python

(从官网下载Python 3.6如果是xp下载3.5,然后看下基本的Python安装和使用介绍,启动IDLE)。安装python之后,开始菜单,python,IDLE,就可以启动了。

在正式学习Python之前我们先来体验下用Python来绘制图形,如果你看不懂也没有关系,先照着教程把代码查下来就是了,就像是联系书法开始肯定有个临摹的阶段,我们先体验,后面详细讲解为什么这么做,下面我们隆重的请我们的Python小乌龟入场。

首先在IDLE的代码编辑器输入(图1)代码,然后单击运行(图2)。



我们来解释下这段代码:from turtle import *是从Python的库中导入turtle这个类,当导入的时候,其实小乌龟已经存在了,只是我们看不到而已。当你通过forward(90),命令让小乌龟前进90个单位的时候惫懒的小乌龟才出现在舞台上,forward的意思是前进,forward后面括号里的是参数,描述乌龟前进的距离,这是一个固定的写法。

(图3)是不是觉得眼熟呢,在Scratch是不是有点像Scratch里面让小猫动起来呢?在turtle里面,默认画笔是落下的,所以小箭头移动的时候就会画图,我们记得scratch里面有一个抬笔积木,在turtle也有。

通过penup()命令抬笔,然后利用goto(10,90)命令让小乌龟移动到(10,90)。其实这个时候,调用前面的向前移动forward命令也不会留下痕迹的,下面我们来绘制一个正方形。首先我们用scratch来实现绘制正方形这个功能,我们用最简单的顺序命令来实现。


可以看到,首先拖动绿旗模块到舞台,然后清空舞台,落笔,让小企鹅前进90步(图4),然后右转90°,等1秒钟,重复以上步骤四次。抬笔,准备下一次绘图,这是一个典型的绘制正方形的程序,采用了顺序结构来编制程序,便于理解。接下来我们用python中的turtle库实现这个程序。


虽然一个是图形编程,一个是文本编程,但是都成功的绘制出了正方形。下面我继续完善,大家之道在Scratch中是可以改变画笔属性的,比如画笔粗细,画笔的颜色等等,在python也是可以的。我们用python里面的命令完成了与scratch相同的功能,是不是相当有趣呢?

变量

前面我们画了一个边长为90的正方形,如果我们想让正方形的边长是100怎么办呢?我们先来看最原始的方法,那就是把Scratch或者Python中代表边长的数字90分别改成100。

你会发现这次不是正方形啊(图5),哦,原来是我把最后一个右转90°,也改成100,导致右转了100°,你看,这样一个个的修改不仅麻烦,而且容易出错,怎么办呢,我们用一个变量代表边长。变量是一个容器,里面存放着代表边长的数字。

经过前面多学习,大家已经掌握了在Scratch中新建变量,下面我们新建一个代表边长的变量Side,然后把程序中代表边长的100改成变量Side(图6)。Python是一种解释语言,无需声明就可以新建变量,新建变量只需要用下面的语法:side = 100。这样就新建了一个side变量,代表100,这里的=等号的含义是:把右侧100的值放到变量Side中,Side代表100,我们看如何用Python来实现用变量来代表数值绘制正方形。

在日常生活中,我们经常会遇到一个枯燥而重复的事情,为了从这些劳动摆脱出来,人们发明机器以及机器人,代替人类完成这些枯燥重复的事情。与人类不同的是,计算机特别擅长做简单重复的事情,效率和准确率比我们人类要高很多。通过合理的使用重复循环,我们可以大大提高程序的效率。

仔细观察图7代表,是不是感觉有很多地方是重复的呢?一般在计算机中超过三次重复就可以考虑使用循环来简化代码。在Scratch中,控制积木分类中有重复积木。利用Scratch中的循环来简化代码(图8),仔细观察以上代码,想一想在重复4次内部应该放入那些积木块呢,这样代码是不是简单了很多?


Python中的循环,需要用到for...each...语句,在这里会涉及到Python一个非常有意思的地方,缩进语法。执行以上代码,会发现出现了一个正方形,需要注意的是,forward(90)以及right(90)语句比for缩进了4个空格,这也是Python的特点之一,缩进语法,这是for的固定写法,大家要知道,而且一定不要漏掉冒号哦。

有人说,不是python turtle小乌龟吗,为什么只有箭头呢?Scratch舞台上有各种各样的角色,Python turtle只有个箭头是不是太寒酸了呢?turtle也可以多种多样哦!需要改变箭头的形状要用到shape()命令,下面我们来试一下


图9有没有觉得小乌龟太小了?我们来改变小乌龟的大小。运行图10代码,是不是发现小乌龟变大了呢?


小结:Python urtle某种程度上跟logo小乌龟是比较类似的,肯定有人会疑问为什么不直接学习logo呢?因为logo基本上已经被淘汰了,我们最主要的目的还是学习Python,Python turtle以及结合scratch只是防止单纯的学习Python过于枯燥的弱点,当然真正的掌握了Python以后就不会有这样的感觉,基本上Scratch大部分功能都可以用Python turtle来实现,这样就可以顺利的帮助小孩子从Scratch过渡到Python。&nbsp