给Python点颜色——青少年学编程

978-7-115-51232-1
作者: 佘友军
译者:
编辑: 李永涛

图书目录:

详情

Python是一种简单易学的高级程序设计语言,这门强大的语言目前在很多大型技术公司得到广泛应用。学习本书,你可以用英语单词编写一段代码,可以用编程解决数学方面的问题,可以用程序绘制一个美丽的图案,也可以制作出好玩的科技作品。

图书摘要

内容提要

面对科技驱动的未来,编程是学生们茁壮成长所必需的技能。学生在学习编程的过程中,需要培养自己的批判性思维和问题解决能力。Python是一种简单易学的高级程序设计语言,是一种被初学编程者和计算机专家共同青睐的编程语言。这门强大的语言目前在很多大型技术公司得到了广泛应用。

本书由小学信息技术学科带头人、数学学科骨干教师编写,内容集数学、英语、美术、工程、编程等多学科知识于一体,深入浅出、趣味性强、接地气。学习完本书,读者可以用英语单词编写一段代码,可以用编程解决数学方面的问题,可以用程序绘制一个美丽的图案,甚至还可以制作出好玩的科技作品。

本书适合想要学习Python编程的读者,尤其适合教师、中小学生、关心孩子技能发展的父母学习。

序1

编程是表达思想、解决问题、创造乐趣的载体,是体现计算思维的重要方式。同时,编程也是一项很酷的活动,记住这一点:编程不是为了成为程序员,编程可以让你的思路更加清晰。

Python是一门非常有意思的语言,使用上比较简洁,没有那么多繁文缛节。它是图形化程序(如Scratch)到高级语言(如C++)之间的绝佳桥梁。

目前市面上关于Python的图书很多,不过有些图书不适合孩子阅读,难度较大,对于中小学生的理解难点往往处理不够好。这本书是佘友军老师经过一年教学实践积累形成的成果,并于初稿形成后进行了实验与试教,对学生在使用过程中的难点、暴露出来的问题,进行了修改和调整。

佘友军老师是来自南通的信息技术学科带头人,具有丰富的教学经验,所设计的课堂教学非常有创意,这种创意也体现在这本书上。本书通过生活化的模型帮助学生理解编程概念,如使用箱子帮助学生理解变量的概念,使用工具箱理解模块的概念;通过有趣的编程实例培养学生的兴趣;通过幽默搞笑的语言和情节让学习更加轻松;通过画图、编写GUI界面程序、在Minecraft中利用程序建模等引人入胜的任务,提高孩子的成就感。

是为序,希望孩子们能通过这本书,很好地提升计算思维。

丁婧
江苏省教育科学研究院信息技术教研员

序2

爱徒佘友军是个普通人,其貌不扬,文雅安静,在人群中是不大容易找到他的。就这样一位普通的信息技术教师,在课堂里却是另外一副模样,笑眯眯的脸上激情飞扬,技术课堂充满了人文情怀,有情有趣,孩子们乐于在课堂里跟他交流、辩论,解心中的疑惑。睿智的语言,爱生的情怀,让他的学生总是说:“佘老师可是帅呆了。”

课余时间能够编写这本书,一点也不会让人感到惊讶。在学校里,课堂上心里装的是学生;在课外,心里装的是信息技术。自2017年初以来,历时两年精心钻研技术、设计课程,并从儿童角度出发编写一套适合儿童学习的Python教材,着实令人惊叹称奇。这本书折射出友军作为一名信息技术教师的情怀和付出的常人不能想象的艰辛和毅力。

给Python一点颜色,这超越了绝大多数人对程序设计和学习者心理活动的理解,因为有了“色”,程序例程就有了思想,便有了融会语数贯通科学艺术。“让他懂,便让他拥有未来”,愿这本书给广大少年儿童的未来带来一片广阔的天空,也愿友军是一片自由而充满变化的白云,给儿童信息技术教育带来丰硕成果。

孙伟
南通市教育科学研究院

前言

1 为什么要学编程

学编程不是为了成为程序员,而是锻炼人的思维。学会编程,会让思维更严谨缜密,有利于寻找问题的最优解决方案。

乔布斯说过:“每个人都应该会编程,因为它教你如何思考。”

编程是数字时代的超能力,别人需要几天才能完成的工作,使用程序可能几分钟就能完成。

编程可以综合运用科学、技术、工程和数学等多门学科的知识,能让你学有所用。

我国《新一代人工智能发展规划》明确提出要在中小学阶段设置人工智能相关课程,逐步推广编程教育。此次规划出台,将会加快编程及相关人工智能课程进入中小学课堂。

从小就学会编程,在学习编程的过程中,建立对科技的认知,激发想象力和创造力。毋庸置疑,投资教育就是投资未来。人工智能教育已成为时代趋势,投资孩子的教育,也就是投资孩子的未来。让我们的孩子赢在人工智能时代!

2 什么是Python

我们从上百种语言中,选择了Python语言进行研究。因为Python是一门非常热门的语言,简单易学,代码看起来就像是自然语言一样,浅显易懂。

开发这门语言的工程师,取Python这个名字是有来历的。他特别喜欢看英国Monty Python组合的电视节目,Monty Python是著名的英国六人喜剧团体,堪称喜剧界的“披头士”。

3 Python的用途

Python的用途非常广泛,在网站开发、数据分析、程序编写、科学计算、图形处理、深度学习、自然语言处理、人工智能等方面都得到了广泛应用。

利用深度学习库可以让计算机学习名画的风格,然后将照片转变成名画的效果。

一些专业的三维动画师或建模师,利用Python创建三维模型或制作特殊效果,能更好地制作三维游戏或影片。

Python还可以和风靡全球的游戏《我的世界》结合起来,使用程序快速地走遍虚拟世界中的任何地方,可以使用程序建立一座城堡,而不需要一块一块地搭建。

对学生来说,可以研究绘图、设计游戏、制作科技小发明等。

Python有大量的库文件支持,大大缩短了程序开发的难度和周期。有句著名的话:Life is short, use Python(人生苦短,开始用Python吧)。

4 配套资源

本书配套的各种资源可以通过扫描右侧的二维码进行下载。

5 致谢

感谢父母的付出,感谢岳父岳母的帮助,感谢妻子、女儿的理解和支持,你们是我努力的动力。

感谢孙伟老师、郑明达老师在学术上的帮助,感谢你们给了我这么多机会,我的人生由你们改写。

感谢李生元老师、丁婧博士的关心和鼓励,没有你们就没有今天的我。

在我的学生时代,李志丹老师给了我很大的帮助,因为你,我才与计算机结下不解之缘。那个时候的计算机很少,感谢你将机房钥匙在周末的时候交给我。那是一段美好的岁月。

感谢特级教师许卫兵、徐金贵、周振宇给予的支持与帮助;感谢陆晓林先生、王丽女士、仲海峰先生、薛华先生、姚德贵先生、何春光先生、吴丽娟女士、景素霞女士、李建梅女士、李军先生、许雪松先生的厚爱。

感谢王慧老师和丁玲老师,感谢你们认真地审阅本书,你们是我的第一批读者。

编者
2018年12月

第1章 起步

1.1 安装Python

在开始使用Python之前,我们需要根据自己的操作系统安装对应的Python编程环境。

那就直接安装32位的吧,双击运行下载的安装文件。

选中最下面的“Add Python 3.6 to PATH”选项(这会为后面的使用带来很多便利),然后单击Install Now(现在安装)。

在弹出的“用户账户控制”对话框中单击“是”按钮开始安装。

安装完毕后,出现“Setup was successful”窗口,表示安装成功,单击Close按钮完成安装。

在Windows的“开始”菜单中找到刚刚安装的IDLE图标,单击就能运行Python编程环境。

为啥给Python编程环境取名为IDLE呢?IDLE是Python's Integrated Development and Learning Environment(意思是Python的集成开发和学习环境)中后几个单词的首字母。另外,这个名字还有一个来历,Monty Python组合中有个成员名字叫艾瑞克·爱都(Eric Idle),Python语言的作者是在向Monty Python组合致敬呢。另外,idle本身就是一个英文单词,作为形容词有空闲的、懒惰的意思。

1.2 好用的计算器

>>> 12*12*12*12*12*12
2985984
>>> 12**6
2985984

编程语言经常用到很多数据,这些数据可以分为不同的类型。例如,类似1、54、4512、-3这样的数据是整数(在Python中称为int);类似12.2、3.1415、3.0这样的数据是小数(在Python中称为float,代表浮点数);类似'天道酬勤'这样的文本数据是字符串(在Python中称为str)。int是integer(整数)的缩写,str是string(字符串)的缩写。这些数据是可以进行运算的。

Python是个好用的计算器,而且使用起来比计算机和手机中自带的计算器程序更方便。运行Python程序,此时会出现Python的交互模式窗口,在>>>提示符后面输入算式125+8,按回车键,结果就出来了。再分别输入减法、乘法和除法,结果如右图所示。

如果觉得字体太小,可以选择Options菜单下的Configure IDLE命令,然后在弹出的窗口中将字体的Size(字号)调大,如下图所示。

在Python中,乘法运算符号是“*”,除法运算符号是“/”。如果使用的是台式机,加减乘除4个符号键可以在右边的小键盘区找到。

有个细节需要注意一下,在Python中用户输入的数字显示为黑色,输出的结果显示为蓝色。不同的颜色代表不同的含义。

除了加减乘除4种常见的运算外,Python中还有3种有用的运算。

下面重点解释一下指数运算。

6*6=62,读作6的平方或6的2次方,在Python里可以写成6**2。

8*8*8=83,读作8的立方或8的3次方,在Python里可以写成8**3。

10*10*10*10=104,读作10的4次方,在Python里可以写成10**4。举个例子,如果要计算6个12相乘的结果,可以有两种不同的方法。

结果都一样。

指数运算在进行大量数据运算的时候特别有用。为了让阿诺心服口服,我们进行一场比赛:1000个25相乘的结果是多少?使用指数运算,输入25**1000就能得到结果。

顽固的阿诺选择连续输入:25*25*25*…*25,他要连续输入1000个25,我们来看看阿诺算得怎么样了?

看样子不容乐观。那好,我们再进行第二轮比赛:3×3×3×…×3,共有2018个“3”,积的个位数字是多少?

从上面可以找到规律,积的个位一直是3、9、7、1不断循环出现。2018/4的余数是2,因此2018个3相乘的积的个位数字是9。

这个我知道,只要找到积的规律就可以了。

1个3相乘,个位是3;2个3相乘,个位是9;

3个3相乘,个位是7;4个3相乘,个位是1;

5个3相乘,个位是3;6个3相乘,个位是9;……

好吧,我们来使用指数运算吧,输入3**2018,按回车键,不仅能看到个位数字,还能算出正确的结果。

两轮比赛,Python完胜。还可以有第三轮比赛,很多计算器都无法进行分数的运算,在Python中可以进行分数的计算哦。我们将在后面进行研究。

1.3 字符串运算

Python里面还有一种数据类型叫字符串。字符串就是一系列字符。我们可以把字符串理解为文本。在Python中,用引号括起来的都是字符串,其中引号可以是单引号,也可以是双引号,但必须是英文状态下的引号。如'天道酬勤'和"天道酬勤"都是字符串。

冰糖葫芦通常是用竹签把山楂串起来,字符串使用引号把字符串起来。

字符串也可以进行运算,字符串可以做加法运算,也可以做乘法运算,我们来看看。在交互模式窗口中输入:

>>> '天道'+'酬勤'
'天道酬勤'

字符串的加法是把多个字符串合并在一起,我们可以合并任意的字符串,不过无法合并字符串与数字。

>>> '天道酬勤'+2018
Traceback (most recent call last):
  File "<pyshell#8>", line 1, in <module>
    '天道酬勤'+2018
TypeError: must be str, not int

这里'天道酬勤'是字符串,2018是数字,二者不可以相加,解决这个问题的方法是将2018转换成字符串。在数字2018的两边加上引号,这样2018就变成了字符串。我们将在后面研究使用函数的方法将数字转换成字符串。

>>> '天道酬勤'+'2018'
'天道酬勤2018'

我们也可以将字符串乘以数字,不过只能乘以整数。如输入:

>>> '祝福'*365

字符串不支持减法和除法,你能想象出'苹果'-'西瓜'会得到什么结果吗?

1.4 我的第一个Python程序

程序是由指令组成的,指令是让计算机执行某个具体动作。打个形象的比方,我们给阿诺发出一个命令:双手抱头。这个命令就是一个指令。

在Python中,要将结果或文字输出,需要用到print(打印)指令。

运行Python,在交互模式窗口中输入指令print("欢迎来到Python世界"),按回车键。这里,双引号中的内容是字符串,Python会原封不动地将引号中的内容输出。除了使用双引号外,使用单引号也能得到同样的效果。

print()指令是一个函数,通常函数都有自己的参数,函数名后面要跟上小括号,括号里面是参数。print("欢迎来到Python世界")这条指令中,“欢迎来到Python世界”就是print()函数的参数。

按照上图所示输入指令后,没能如愿输出“欢迎来到Python世界”语句,而是出现了一行红色的文字,并且将引号突出显示出来。这说明我们的引号有问题,请记住,必须使用英文状态下的引号,不能使用中文状态下的引号。

这里我们能看到不同的颜色有不同的含义:紫色代表指令,绿色代表引用的文本,红色代表错误信息,蓝色代表输出内容。

如果你觉得说一遍不够热情,可以多说几遍,在Python里,这样写就可以了。

>>> print("欢迎来到Python世界"*10)
欢迎来到Python世界欢迎来到Python世界欢迎来到Python世界欢迎来到Python世界欢迎来到Python世界欢迎来到Python世界欢迎来到Python世界欢迎来到Python世界欢迎来到Python世界欢迎来到Python世界

我们在输入代码的时候,可以看到的字体颜色含义如下。

print语句在使用的时候有些注意要点,下面列举出来。

print全为小写字母,如果输入了大写字母,就会出现错误。print()是一个函数,括号和引号都必须是英文状态下的标点符号。print("欢迎来到Python世界")或print('欢迎来到Python世界')可以使用单引号或双引号,甚至还可以使用三引号''',我们后面再研究。

常见的程序错误如下。

编写程序的时候不可避免地会遇到很多错误,幸运的是大多数错误Python都会给我们指示出来。

正如图中红色部分指示的那样,前面多了个空格。

红色部分告诉我们,括号错误,应输入英文状态下的括号。

提示信息告诉我们,print函数错了,不是prlnt。

这里告诉我们有个字符无法辨认,其实是使用了中文状态下的引号。

1.5 变量

变量是计算机编程中的一个重要概念。在编程的时候,可以使用变量存储信息,可以是文字信息,如用户的名字;也可以是数字信息,如游戏玩家的得分。

我们可以把变量理解为计算机中的盒子,盒子里面可以存放数字或字符串。

可以在盒子上面贴上标签。例如,我们需要一个变量存储年龄信息,可以给存储变量的盒子贴上age标签,这样一看就知道这个盒子里面存放的内容。

如输入age=17,就是新建了一个名为age的变量,在变量里面存储了数字17。需要的时候我们可以打印出变量中的数值。

这里的符号=,不是通常意义上的等于号,而是赋值符号。看age=17的时候要从后往前看,就是将17的值赋给age变量。

在交互窗口中输入:

>>> age=17
>>> print(age)

得到的输出结果是17。

在Scratch中可以这样编写程序。

>>> age=17
>>> age=18
>>> print(age)

猜猜看,结果是多少?

执行第一条语句的时候,把17存放在age中,当执行第二条语句的时候,值18覆盖了原来的17,因此age变量中新的值为18。

结论:变量的值是可以变化的。当给变量赋一个新值后,该值将覆盖原来的旧值。

>>> age=17
>>> age=age+5
>>> print(age)
22

结论:变量的值是可以计算的。

从数学角度看,age不可能等于age+5,不过,上面的age=age+5是赋值语句,赋值语句一般从后往前看,表示将age+5的值赋给age

如果有两个变量ab需要赋值,我们可以这样写:

a=12
b=13

也可以同时给ab赋值:

a,b=12,13

如果输入:

>>>> age=17
>>> print('age')

得到的结果是什么呢?

结论:加引号的是字符串,print直接打印出该字符串。

比较:

a=19

b=18

a+b

这是整数数值相加,得到的结果是37。

a="19"

b='18'

a+b

这是字符串相加,得到的结果是1918。

好的变量名应当能让人理解这个变量的含义,如看到age就知道是存放年龄的。想象一下,如果你家里有数十个箱子,每个箱子上面都标注的是一大堆看不懂的字符,那么需要花很长时间才能找到自己想要的东西。

给变量取名是有一定规则的:变量名可以由字母、数字和下划线(_)组成,且只能以字母开头,不能以数字开头,如a1是合法的变量名,1a就是非法的变量名。

变量名中不能有空格。变量名是区分大小写的,如ageAge是两个不同的变量,不过Python推荐使用小写字母开头,这是一个惯例。对于名字较长的变量名,我们可以使用驼峰形式,如我的年龄,可以写成woDeNianLing,这样看起来比较清楚;如果写成wodenianling,可读性就差了,更不能写成wo de nian ling,变量名中是不可以出现空格的。

变量的值互换

有的场合我们需要交换两个变量的值,如a=10,b=12,我们希望把b的值给aa的值给b,这样a=12,b=10,如何实现呢?

阿诺看起来非常自信,我们来验证下这个程序是否可行。运行上面的程序后,我们分别输入print(a)和print(b),看下两个变量的数值。

结果都是12,数值10没有了,这可不是我们希望的结果。

我们来看下数据流动的过程。

程序的第三行a=b,意味着将b里面的数值赋给a,也就是将12赋给a,这样ab里面存放的都是12,原来的10没有得到保存,因此消失了。

怎么解决这个问题呢?

回答正确,我们需要一个额外的箱子,先将a里面的10保存在temp箱子中。

第二步,将b里面的数值存放到a里面去,ab都是12了。

第三步,将temp箱子里面的数值赋给b,这样就实现了数据的互换。

写成代码,是这样的。

还有一种更加简洁的方法,这是Python独特的地方。

怎么样,很简洁吧。利用a, b=b, a就直接交换了两个变量的数值。

相关图书

中学生C++创意编程
中学生C++创意编程
青少年编程魔法课堂 Python图形化创意编程
青少年编程魔法课堂 Python图形化创意编程
写给 青少年的人工智能 实践
写给 青少年的人工智能 实践
青少年编程魔法课堂 C++图形化创意编程
青少年编程魔法课堂 C++图形化创意编程
青少年Python趣味编程
青少年Python趣味编程
趣味掌控板编程
趣味掌控板编程

相关文章

相关课程