书名:青少年学Python
ISBN:978-7-115-48357-7
本书由人民邮电出版社发行数字版。版权所有,侵权必究。
您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。
我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。
如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。
著 [希]阿里斯提德•波拉斯(Aristides S. Bouras)
[希]卢卡雅•阿伊纳罗斯托(Loukia V. Ainarozidou)
译 荣 耀 程 晶
责任编辑 陈冀康
人民邮电出版社出版发行 北京市丰台区成寿寺路11号
邮编 100164 电子邮件 315@ptpress.com.cn
读者服务热线:(010)81055410
反盗版热线:(010)81055315
Simplified Chinese translation copyright ©2017 by Posts and Telecommunications Press
ALL RIGHTS RESERVED
Python for Tweens and Teens,by Aristides S. Bouras Loukia V. Ainarozidou
Copyright © 2016 by Aristides S. Bouras Loukia V. Ainarozidou
本书中文简体版由作者授权人民邮电出版社出版。未经出版者书面许可,对本书的任何部分不得以任何方式或任何手段复制和传播。
版权所有,侵权必究。
Python是一门非常流行的编程语言,不仅有着非常广泛的应用,而且由于学习门槛较低,适合中小学生和青少年学习。
本书帮助读者利用Python语言进入编程世界。本书强调以计算和算法思维训练为导向,从计算机的工作原理和算法基础开始,详细介绍了Python编程的基础知识,进而引入了数据结构、过程式编程和面向对象编程等较为高级的话题。全书图文并茂,讲解细致,包含100多道已解答和200道未解答的练习,250多道判断题,100道多选题和100道复习题,可以帮助读者牢固地掌握所学的知识。
本书适合任何希望使用正确的习惯和技术开始学习或教授计算机编程的人,尤其适合10岁以上的孩子或者他们的父母和老师教孩子学习编程。
Aristides S. Bouras出生于1973年。早在孩提时期,他就发现自己对计算机编程充满热爱。他在12岁时得到自己的第一台计算机—— 一台Commodore 64。这台计算机拥有基于ROM的BASIC编程语言和64KB RAM(内存)!
他获得比雷埃夫斯技术教育学院计算机工程学位、色雷斯德谟克利特大学电子和计算机工程学位。
他曾在一家专门从事工业数据流和产品标签化的公司担任软件开发人员。他的主要工作是开发数据终端的软件应用程序,以及用于在数据库服务器上收集和存储数据的PC软件应用程序。
他开发了许多应用程序,如仓库管理系统、公司网站以及其他组织的网站。目前他是一名高中教师,主要教授计算机网络课程、Internet/Intranet编程工具和数据库课程。
Loukia V. Ainarozidou出生于1975年,她13岁时得到了自己的第一台计算机——拥有128KB的RAM(内存)和3英寸软盘驱动器的Amstrad CPC 6128!
她获得比雷埃夫斯技术教育学院计算机工程学位、色雷斯德谟克利特大学电子和计算机工程学位。
她曾在一家主营业务为水果和蔬菜包装的公司担任数据后勤部门主管。 如今,她是一名高中教师。 她主要教授计算机网络、计算机编程和数字设计课程。
特别感谢我们的朋友和资深编辑Victoria (Vicki) Austin不厌其烦地回答我们所有的问题——甚至是愚蠢的问题,以及在书稿编辑中所给予的慷慨帮助。没有她,这本书就难以释放全部的潜能。她的耐心指导和宝贵的建设性意见帮助我们把这本书提升到更高的水准!
算法思维涉及的不仅仅是学习编写代码,而是解决问题的过程,只不过其中涉及学习如何编码!本书在教授计算和算法思维时假定读者对计算机编程一无所知!
毫无疑问,Python是一门非常流行的编程语言。本书可以帮助读者利用Python语言进入编程世界。本书包括很多图解,100多道已解决和200道未解决的练习,250多道判断题,100道多选题和100道复习题(可以在异步社区网站上找到解答)。本书适合任何希望使用正确的习惯和技术开始学习或教授计算机编程的人,尤其适合10岁以上的孩子或者他们的父母和老师教孩子学习编程。
以下是对本书中使用的约定的一些说明。“约定”是指显示特定文本的标准方式。
本书使用了大量以Python语言编写的示例。Python语句以如下字体显示:
This is a Python statement
关键字、变量、函数和参数有时显示在文本段落中。如果是这样,那么这些特殊的文字会以不同于该段落其余部分的文字显示出来。例如,first_name = 5是一个段落文本中的Python语句例子。
您可能会注意到,某些特殊字词(关键字、变量、函数和参数)也以斜体显示。当看到这些以斜体显示的特殊字词时,意味着它们是一般的类型,必须用适合您的数据的具体名称加以替换。例如,一条Python语句可能会显示为:
defname(arg1, arg2):
这条语句是以一般形式写的,这意味着它不完整。这种一般形式只是向您展示真实的语句大致的样子。为了完成该语句,关键字name、arg1 和arg2 必须替换为有意义的内容。在程序中使用该语句时,可以使用如下形式显示它:
def display_rectangle (width, height):
在语句的一般形式中,您可能还会注意到三个小圆点(...)(即省略号),跟在一个示例参数列表之后。这些小圆点并不是语句的一部分。省略号意味着您可以在列表中声明很多参数。例如,以下一般形式语句中的省略号:
display_messages (arg1, arg2, ...)
显示该列表可能包含两个以上的参数。当在程序中具体使用这条语句时,您的语句可能像这样:
display_messages (message_A, message_B, message_C, message_D)
一些语句或函数的一般形式可能包含方括号[],这意味着括起来的部分是可选的。例如,以下一般形式的语句:
subject.sort([reverse = True])
说明[reverse = True]部分可以省略。
以下两个语句会产生不同的结果,但它们在语法上都是正确的(即它们都使用了正确的语法):
x.sort()
x.sort(reverse = True)
这本书的大部分例子都是采用如下显示方式:
file_29_2_3
a = 2
b = 3
c = a + b
print(c)
顶部的深色标题file_29_2_3显示您必须打开进行试验的文件名。所有包含这种标题的示例均已免费开放在因特网上。您可以从以下地址下载它们:
http://www.epubit.com
这本书经常使用提示框帮助您更好地理解一个概念的含义。提示框的样式如下:
提示
这个字样表明此处为一个提示信息。
这本书时常帮助您回忆一些已经学过的知识(可能在前一章刚学过)。其他时候, 它会指出一些您应该记住的内容。样式如下所示:
请记住!这个样式表示回忆某些知识或您应该记住的知识。
本书由异步社区出品,社区(https://www.epubit.com/)为您提供相关资源和后续服务。
本书提供如下资源:
本书源代码;
书中彩图文件;
配套视频。
要获得以上配套资源,请在异步社区本书页面中点击,跳转到下载界面,按提示进行操作即可。注意:为保证购书读者的权益,该操作会给出相关提示,要求输入提取码进行验证。
作者和编辑尽最大努力来确保书中内容的准确性,但难免会存在疏漏。欢迎您将发现的问题反馈给我们,帮助我们提升图书的质量。
当您发现错误时,请登录异步社区,按书名搜索,进入本书页面,点击“提交勘误”,输入勘误信息,点击“提交”按钮即可。本书的作者和编辑会对您提交的勘误进行审核,确认并接受后,您将获赠异步社区的100积分。积分可用于在异步社区兑换优惠券、样书或奖品。
我们的联系邮箱是contact@epubit.com.cn。
如果您对本书有任何疑问或建议,请您发邮件给我们,并请在邮件标题中注明本书书名,以便我们更高效地做出反馈。
如果您有兴趣出版图书、录制教学视频,或者参与图书翻译、技术审校等工作,可以发邮件给我们;有意出版图书的作者也可以到异步社区在线提交投稿(直接访问www.epubit.com/selfpublish/submission即可)。
如果您是学校、培训机构或企业,想批量购买本书或异步社区出版的其他图书,也可以发邮件给我们。
如果您在网上发现有针对异步社区出品图书的各种形式的盗版行为,包括对图书全部或部分内容的非授权传播,请您将怀疑有侵权行为的链接发邮件给我们。您的这一举动是对作者权益的保护,也是我们持续为您提供有价值的内容的动力之源。
“异步社区”是人民邮电出版社旗下IT专业图书社区,致力于出版精品IT技术图书和相关学习产品,为作译者提供优质出版服务。异步社区创办于2015年8月,提供大量精品IT技术图书和电子书,以及高品质技术文章和视频课程。更多详情请访问异步社区官网https://www.epubit.com。
“异步图书”是由异步社区编辑团队策划出版的精品IT专业图书的品牌,依托于人民邮电出版社近30年的计算机图书出版积累和专业编辑团队,相关图书在封面上印有异步图书的LOGO。异步图书的出版领域包括软件开发、大数据、AI、测试、前端、网络技术等。
异步社区
微信服务号
现如今,几乎所有工作都需要使用计算机。在学校,学生使用计算机上网搜索、发送邮件;在工作中,人们使用计算机制作报告、分析数据并与客户通信;在家里,人们使用计算机玩游戏,连接社交网络,与世界各地的人聊天。当然,不要忘记智能手机,比如iPhone。智能手机也属于计算机!
计算机能执行如此之多不同的任务是因为它们具有编程能力。换句话说,计算机可以执行任何程序要它执行的任务。程序是计算机执行特定任务所遵循的一组语句(通常称为指令或命令)。
程序对计算机来说是必不可少的。如果没有程序,计算机就变成了傻瓜,无法做任何事情。实际上,是程序告诉计算机做什么以及何时做。另一方面,是程序员设计、创建和测试了计算机程序。
本书使用Python语言介绍计算机编程的基本概念。
术语“硬件”是指组成计算机的所有设备或组件。如果您曾打开过计算机或笔记本电脑外壳,可能已经发现里面有许多组件,如微处理器(CPU)、内存和硬盘。计算机不是一个简单的设备,而是由多个设备一起组成的系统。典型计算机系统的基本组件包括以下几个部件。
计算机所做的一切都是由软件控制的。软件分为两类:系统软件和应用软件。
当您打开计算机时,主内存(RAM)是空的。计算机要做的第一件事就是将操作系统从硬盘加载到主存(RAM)中。
操作系统被加载到主存(RAM)后,可以执行(运行)任何您希望运行的程序(应用程序软件)。 通常通过点击、双击或轻触程序相应图标完成。例如,假设您点击最喜欢的视频游戏的图标,这个动作命令您的计算机将视频游戏从硬盘加载(或复制)到主存(RAM),以便CPU执行它。
请记住!程序存储在辅助存储设备(如硬盘)上。在计算机上安装程序时,程序将被复制到硬盘上。当我们执行程序时,程序被从硬盘复制(加载)到主存(RAM)中,程序的副本被执行。
提示
术语“执行”和“运行”是相同的意思。
计算机只能执行使用严格定义的计算机语言编写的程序。您不能使用自然语言(如英语或希腊语)编写程序,因为您的计算机无法理解这些语言!
然而一台计算机实际上能理解什么语言呢?计算机可以理解称为机器语言的特殊的低级语言。 在机器语言中,所有语句(或命令)均由0和1组成。以下程序示例计算两个数字之和,用机器语言编写:
0010 0001 0000 0100
0001 0001 0000 0101
0011 0001 0000 0110
0111 0000 0000 0001
震惊吗?别担心,您不会这样写程序。希望再也没有人以这种方式编写计算机程序了。现在,所有程序员都是用“高级语言”写程序,然后用特殊的程序把它们翻译成机器语言。
提示
高级语言跟特定类型的计算机无关。
程序员使用两种类型的程序执行语言翻译:编译器和解释器。
编译器是一种程序,将用高级语言编写的语句翻译成单独的机器语言程序,随后可以随时执行该机器语言程序。执行翻译之后,不需要编译器再次翻译该程序。
解释器是一种程序,同时翻译和执行用高级语言编写的语句。当解释器读取程序中每条单独的语句时,它将其翻译成机器语言代码,然后直接执行它。对程序中的每条语句都要重复这个过程。
程序员用高级语言编写的语句(指令或命令)称为源代码或简称为代码。程序员首先将源代码输入到一个称为代码编辑器的程序中,然后使用编译器将其翻译成机器语言程序,或者使用解释器同时翻译和执行它。
判断以下语句的真或假。
1.现代计算机可以执行许多不同的任务,因为它们具有许多吉字节的RAM。
2.计算机可以在没有程序的情况下运行。
3.硬盘是硬件。
4.即使计算机没有电,数据也可以长时间存储在主存(RAM)中。
5.数据存储在主存(ROM)中,但程序不是。
6.扬声器是输出设备。
7.Windows和Linux是软件。
8.设备驱动程序是硬件。
9.媒体播放器是系统软件。
10.当您打开计算机时,主存(RAM)已包含操作系统。
11.当您打开文字处理应用程序时,它实际上是被从辅助存储设备复制到主存(RAM)中的。
12.在机器语言中,所有语句(命令)都是由一系列的0和1组成。
13.如今的计算机不能理解0和1。
14.如今的软件是用1和0组成的语言编写的。
15.“软件”是指计算机的物理组件。
16.编译器和解释器是软件。
17.编译器将源代码翻译成可执行文件。
18.解释器可以创建机器语言程序。
19.程序被翻译后,解释器就不再是必需的。
20.源代码没有被编译或解释就可以被计算机执行。
21.用机器语言编写的程序需要编译(翻译)。
22.编译器用于编译用高级语言编写的程序。
请选择正确的答案。
1.以下哪项不是计算机硬件?
a.硬盘
b.DVD光盘
c.声卡
d.主存(RAM)
2.以下哪项不是辅助存储设备?
a.DVD读写器设备
b.硬盘
c.USB闪存驱动器
d.RAM
3.触摸屏是 。
a.输入设备
b.输出设备
c.以上两者
4.以下哪项不是软件?
a.Windows
b.Linux
c.iOS
d.视频游戏
e.网页浏览器
f.设备驱动程序
g.以上都是软件
5.以下哪项陈述是正确的?
a.程序存储在硬盘上
b.程序存储在DVD光盘上
c.程序存储在主存(RAM)中
d.以上所有内容均正确
6.以下哪项陈述是正确的?
a.程序可以直接从硬盘执行
b.程序可以直接从DVD光盘执行
c.程序可以直接从主存(RAM)执行
d.以上说法全对
e.以上说法全错
7.程序员无法使用 编写计算机程序。
a.机器语言
b.自然语言,如英语、希腊语等
c.Python
8.编译器是 。
a.将用机器语言编写的程序翻译成高级语言程序
b.将用自然语言(英语、希腊语等)编写的程序翻译成机器语言程序
c.将用高级语言编写的程序翻译成机器语言程序
d.以上说法全错
e.以上说法全对
9.机器语言是 。
a.一种用于在机器之间相互通信的语言
b.由计算机直接使用的由数字指令组成的语言
c.使用英语单词进行操作的语言
10.如果两条相同的语句是相邻的,则解释器 。
a.翻译第一条并执行它,然后翻译第二条并执行它
b.翻译第一条,然后翻译第二条,然后执行它们俩
c.只翻译第一条(因为它们是相同的),然后执行两次
请回答以下问题:
1.什么是硬件?
2.列出典型计算机系统的6种基本组件。
3.“引导程序”是什么?
4.计算机的哪个部分实际执行程序?
5.计算机的哪个部分在程序运行时保存程序及其数据?
6.计算机的哪个部分长时间保存数据,即使未通电?
7.您将从外部世界收集数据并输入计算机的设备称为什么?
8.列举一些输入设备。
9.您将从计算机向外界输出数据的设备称为什么?
10.列举一些输出设备。
11.什么是软件?
12.软件类别分为几种?它们的名称各是什么?
13.文字处理程序属于哪一类软件?
14.设备驱动程序属于哪一类软件?
15.什么是编译器?
16.什么是解释器?
17.术语“机器语言”是什么意思?
18.什么是源代码?
Python是一种高级计算机编程语言,允许程序员创建应用程序、网页以及许多其他类型的软件。它是教授算法思维和编程的完美语言,对于入门级别的教学尤其如此。它被广泛用于科学和数值计算。它是一门非常灵活、强大的语言,其编码风格很容易理解。
人们已经用Python写了数百万甚至数十亿行代码,很多代码可以复用!这就是比起任何其他编程语言许多人更喜欢使用Python的原因。这也是您为什么需要学习Python的一个很好的理由!
计算机无法读懂英语或希腊语等自然语言,所以我们需要使用Python等计算机语言与它们交流。Python是一门非常强大的高级计算机语言。Python解释器(实际上是编译器和解释器的组合)将Python语言翻译成计算机可以理解的机器语言。
您可以从Python官方网站免费下载安装Python。
Python可以安装在Windows、Linux / UNIX和Mac OS X等系统中。选择适合您系统的版本并下载最新版。本书展示了如何在Windows系统上安装Python。下载完成后,运行安装程序。
在出现的弹出窗口中(见图2-1),选中“Add Python 3.6 to PATH”,然后单击“Install Now”选项。
图2-1 “Python Setup”窗口
安装过程完成后,单击“Close”按钮。
集成开发环境,或者说IDE,是一种软件,包含程序员编写和测试程序所需的所有基本工具。IDE通常包含源代码编辑器、编译器或解释器以及调试器。IDLE和Eclipse是让程序员编写和执行源代码的两种IDE。
提示
“调试器”是一种帮助程序员查找和纠正错误的工具。
IDLE为初学者提供了一个非常简单的开发环境,尤其适合教学场景。使用IDLE,新手程序员可以轻松地编写和执行Python程序!
您不必安装IDLE,因为它已经安装在您的系统中。什么时候安装的?在您按照第2.3节中所述的步骤安装Python时!在第7章中,您将学习如何使用IDLE编写Python程序并执行它们。您还将学习很多技巧和窍门,作为新手程序员,这些对您迈出第一步是很有用的!
Eclipse是一个IDE,它为许多编程语言(如Java、C、C ++和PHP)提供了一整套工具。Eclipse允许您创建应用程序以及网站、Web应用程序和Web服务。通过使用单独安装的插件,Eclipse可以支持Python甚至其他语言,如Perl、Lisp或Ruby。
Eclipse不是一个简单的代码编辑器。Eclipse可以缩进代码行、匹配单词和括号,并突出显示源代码中的错误。它还提供了自动代码生成功能,这意味着当您输入代码时,它会显示可能的代码补全列表。Eclipse还提供了一些提示信息,帮助您分析代码并发现代码中潜在的问题。它甚至能为这些问题提供一些简单的解决方案。
Eclipse是免费且开源的(意味着公众都可以使用它)。它在世界各地拥有大量的用户和开发者社群。
提示
我们不仅可以使用Eclipse编写代码,还可以直接在它的环境中执行程序。
首先,如果您决定使用IDLE而不是Eclipse,可以跳过本节!
但是,如果您坚持要安装Eclipse,可以从其官方网站免费下载。
Eclipse IDE可以安装在所有支持Java的操作系统上,从Windows到Linux、Mac OS X系统都可以。在Eclipse官网上有一个下拉列表,让您选择所需的平台(Windows、Linux或Mac OS X),请选择与您的计算机匹配的平台。本书展示了在Windows平台上安装Eclipse的过程。
从eclipse.org上提供的所有“Package Solutions”中,选择并下载“Eclipse IDE for Java Developers”。不要担心,您不用去学习Java!下载完成后,将相应的文件解压到“C:\”。
找到文件“C:\eclipse\eclipse.exe”并执行它。
提示
最好创建一个指向“C: \eclipse\eclipse.exe”的桌面快捷方式,以方便访问。
提示
Eclipse主要使用Java语言编写。在安装过程中,您可能会收到以下消息。这意味着在您的系统上没有找到Java虚拟机(JVM)。
提示
可以从Java官方网站免费下载Java虚拟机(JVM)。
Eclipse运行后出现的第一个窗口提示您选择工作区目录(文件夹)。您可以保持建议的文件夹不变,并勾选“Use this as the default and do not ask again ”,如图2-2所示。
图2-2 选择工作区文件夹(目录)
提示
您计算机上的建议文件夹可能与图2-2中的不同,这取决于您安装的Eclipse或Windows的版本。
当打开Eclipse环境时,它应该如图2-3所示。
图2-3 Eclipse IDE
到了配置Eclipse让它支持Python的时候了。从主菜单中选择“Help→Eclipse Marketplace ”,在弹出的窗口中,搜索关键字“PyDev”,如图2-4所示。找到插件“PyDev – Python IDE for Eclipse ”,然后单击“Install”按钮。
图2-4 Eclipse Marketplace
在下一个窗口中,选中所有功能并单击“Confirm ”按钮。当弹出的许可协议窗口时(见图2-5),您必须阅读并接受其条款,然后单击“Finish ”按钮。
图2-5 许可协议
在安装过程中,您可能会收到一条提示,询问您是否信任“Brainwy Software”证书,如图2-6所示。您必须勾选相应的选项,然后单击“OK”按钮。
图2-6 “Brainwy Software ”证书
安装完成后,系统将提示您重新启动Eclipse让更改生效。单击“Yes”按钮。
Eclipse已经正确配置!到了征服Python世界的时刻了!
请回答以下问题:
1.什么是Python?
2.Python有哪些可能的用途?
3.什么是集成开发环境(IDE)?
4.什么是IDLE和Eclipse?