Python超能学习手册

Python超能学习手册"

作者:[美]本·福达(BenForta)什穆尔·福达(ShmuelForta)著周子衿译
ISBN:9787302608127
定价:¥128
字数:千字
页数:
出版时间:2022.08.01
开本:
版次:1-1
装帧:
出版社:清华大学出版社
简介

《Python超能学习手册》是作者5 年Python 编程教学成果的结晶,采用了布鲁姆教育目标来精心设计全书的结构和内容,同时还结合读者的认知水平和需求,在注重知识性的同时深度融入了趣味性,从做游戏的角度来激发读者学习编程的兴趣,聚焦于编程技能以及逻辑、计算和创新思维的培养与提升。

《Python超能学习手册》共3 个部分24 章,从积极正面的游戏(比如文字冒险类和图形类游戏)入手,以快速、有趣和目标为导向,着眼于帮助读者通过学习Python 编程来掌握高效率的底层思维框架,从而懂得如何规划、解决问题、沟通,如何培养逻辑思维、同理心、观察力、耐心、适应力、毅力和创造力等。此外,穿插于全书的术语、技巧提示、补充说明及编程挑战等,可以帮助读者进一步理解和应用各个知识点,也是本书很重要的特色之一。

《Python超能学习手册》适合作为Python 的入门教材,尤其适合不具备任何编程经验的读者。

前言

前?言

请以最低沉的嗓音,气音实际上也可以,缓缓地念出下面这段话:

“传说中,有一群超人。他们拥有超能力,散居在全球各地。他们有激活潜能、唤醒僵尸亡灵的能力。他们能用不同的语言发布指令,可以让或近或远的机器服从他们的意志,听从他们的命令。这些人优秀,强大,他们是传说中的……程序员!”

<咳>不好意思!

好吧,我得承认自己刚才的表演可能有些用力过猛。不过,话又说回来,咱们这些程序员啊,真的个个都算得上是高手,是超人,是美国队长那样的超人。我们都明白,我们是程序员,并且认为自己又酷又厉害(这可真不是在吹牛)。事实上,对大多数程序员而言,我们和《哈利·波特》中的甘道夫、《蜘蛛侠》里面的布鲁斯·韦恩、《星球大战》中的卢克·天行者、《冰雪奇缘》里面的女王艾尔莎、《钢铁侠》中的托尼·史塔克、神奇女侠或死侍。最相似的地方,莫过于我们个个都有超能力,能通过编程来指挥机器,让它们为我们人类服务。

我知道,这么说可能显得有些(一丢丢)夸张。但说句老实话,编程就是能够让我们拥有这么强大的能力。也就是说,“超能力”是很容易通过学习编程来获得的。

本书带着大家一起学习编程,将帮助大家掌握这些技能。此外,更重要的是,我们想要帮助大家通过正确、高效的学习方式来成为美国队长那样的超人程序员。

为什么要学习编程

在此之前,首先请大家考虑这个问题:“为什么要学编程?”如果问问身边的人或者上网一搜,我们会得到各种各样的回答。

最常见的回答是,编程是一种面向未来的技能,非常重要。也就是说,如果我们掌握了编程,未来就更容易找到一份好的工作。虽然这种说法可能有些道理,但是说真的,我并不认为这是学习编程最好的理由。为什么我会这么说呢?

首先,并不是每个人都需要成为一名程序员。这是不可能的,就像不可能每个人都是医生、厨师、教师、飞行员,或者又都是穿过下水管道拯救公主的马里奥一样,懂我的意思了吧?为了维持社会的正常运转,需要有不同的人去做不同的事情,所以说呢,虽然很遗憾,但是,我们未来真的不需要80亿人个个都是程序员。

此外,技术领域(包括编程)的发展日新月异,程序员现在的工作和10年前的工作不同了,而且,下一个10年的变化更大。因此,大家现在学的并不一定是将来成为程序员后会用到的。优秀的程序员永远不会停止学习、提升或拓展自己的技能。基于本书锁定的是基础知识,这些知识始终重要且实用,只不过具体的细节经常会随着应用场景的不同而变化。再说了,编程这个技能并不是学了之后立刻就能上手的,如果有人真的这么以为,那就只能说他是大错特错了。

最重要的是,如果对编程有兴趣完全是出于对未来职业的考虑,可能就会觉得它是工作而不是乐趣。如果没有兴趣,就不会有热爱,就不可能坚持下去,而且肯定缺乏沉迷于编程的动力。这样就太可惜了,因为编程这件事儿,真的很好玩儿。

我并不是说编程领域没有好的工作。肯定是有的,而且未来几十年内会有许多好的工作。但坦白地说,对未来职业的考虑不应该是大家选择成为程序员唯一的原因。

说一千,道一万,到底为什么要学习编程呢?每个人都应该学吗?我认为,即使不打算以编程为职业,也应该学习编程。我相信这一点,如同我相信每个人都应该学习绘画和素描,学习演奏乐器,学习烹饪,学习拍照和拍视频,等等。这些都是创造性的工作,意味着是在真正创造事物,而创造会让人充满成就感和满足感。诚然,花几个小时在手机上浏览别人的创作很有意思,但相比自己的个人作品可以供别人消费和使用时所获得的快乐和满足感,前者完全不值一提。

除此之外,在学习编程的过程中,还可以发展出编程之外的各种不可预期的技能和品质,其中包括规划能力、解决问题的能力、沟通能力、逻辑思维、同理心、对细节的关注、耐心、适应能力、毅力和创造能力。

实际上,对未来的工作和职业生涯而言,这些能力特别重要,尤其是创造能力和创造性解决问题的能力。所以,没错,即使不打算成为程序员,编程也确实可以为大家未来的职业生涯提供帮助。

如何学习编程

现在,我们确定了学习编程是大势所趋,是刚需。但从哪里开始学呢?根据我的经验,许多书籍、视频和课程都过于关注编程的机制,比如语法和使用特定语言元素的具体细节。种种细枝末节让人感觉像是填鸭式教学,并不是在鼓励大家动手尝试捣鼓代码,很无聊。以这样的书作为教材,就好比花几个小时学习字典里的单词和语法,然后通过模仿来使用这些单词和语法,完全没有机会带入自己的话语和声音。这太离谱了,对吧?然而,大多数人都是以这种方式第一次接触编程的。

我从事编程教学已经有很多年的历史了。事实上,我已经帮助100多万人成为了程序员,包括许多年轻人。我知道如何帮助大家培养这些技能,因为我就是以这种方式自学成才的。我的教学特点是快速、有趣但同时又以目标与结果为导向,强调成效,力求帮助学生融会贯通,从想要知道、参与做到、进而得到以及最后精通,从头到尾真正掌握编程这门手艺。

以上就是我写这本书的原因,即帮助大家学习编程,并且更重要的是,帮助大家充分释放自己在编程方面的超能力,让大家变身成为擅长于思考和行动的高效率程

序员。

本书内容

本书不会只专注于讲解如何编程,那样的书多得是,其中有一些甚至还真的不错。

但是,仅仅学会编程是远远不够的。本书还将帮助大家学会像程序员一样思考,像程序员一样分析问题,像程序员一样制订计划,像程序员一样增量迭代,像程序员一样设计优雅的解决方案……事实上,在完成本书的学习后,你将变成(此处应响起击鼓声)一名让人刮目相看的超人程序员!

为了实现这个目的,本书与其他书籍迥然相异。本书的创作动机是帮助大家在快速成为一名超能程序员的同时深度沉浸于编程的乐趣之中。

全书一共3个部分24章,各个部分相辅相成,具体如下所述。

第Ⅰ部分“Python玩起来:小游戏,大欢乐”

这部分涵盖一些基础知识(也有一些不那么基础的知识)。学完本部分的内容后,大家将掌握所有主要的编程概念,具备编写任何应用程序都需要的基础知识。

本部分包含10章内容,具体如下所述。

第1章的主要内容是安装和运行,包括如何帮助大家安装好必要的软件并为使用软件做好准备。

第2章到第7章介绍如何创建各种小游戏和其他程序。每章都会讲解新的编程概念,并立即在新的项目中应用这些概念。每一章中,都有机会调整、修改代码并让代码成为你独有的“资产”。

接下来,第8章将创建一个更复杂的游戏,并在第9章中完成这个游戏。

第10章讨论各种可供自行尝试的点子,以此来作为第Ⅰ部分的收尾。

这样设计章节是考虑到各个主题需要相得益彰。在某一章中新开发的技能随即可以在后续章节中派上用场。同时,这些章节也设计得短小精悍,大部分章节都只涉及一些小型的独立程序。

学习这部分内容时,请慢慢来。请自行尝试每节课和每个案例,用玩儿的心态放开胆子去修改、调整和捣鼓代码。请随心所欲地对书中提供的代码进行修改,看看程序会有哪些变化。因为随时可以撤销操作,所以完全不必担心这样玩儿代码会破坏程序。在第Ⅰ部分中学到的东西会是大家以后最常用到的,无论是在学习本书时还是在今后的任何项目中。

第Ⅱ部分“Python认真玩:文字冒险类游戏”

完成第Ⅰ部分的学习后,我们离开浅水区,来到深水区。在本部分中,将创建一个更大型也更有趣的游戏。一开始,先着手构建框架,然后逐步向其中增加功能。要创建一个什么样的游戏呢?答案是一个很酷的古风文字冒险类游戏,它能给你的家人和朋友留下深刻的印象,而且可以做得相当复杂,足以把硬核玩家给难哭。

本部分共有8章内容。

第11章涉及正式开始制作游戏前的准备工作。

第12章将开始创建游戏,并逐步添加功能和复杂性,一直延续到第17章。

第18章将给出各种改进游戏的点子。

与第Ⅰ部分不同,在本部分中,我们希望大家踏上自己的冒险之旅,讲述自己的故事,编写自己的游戏。我们会帮助大家启航,展示要用到的技术。大家可以自由地使用书中的代码。我们甚至会介绍怎样下载其他故事的开头,但随后我们会把一切交给大家,让大家创造出自己的游戏大作。

第Ⅲ部分“Python好好玩:赛车竞速类游戏”

和第Ⅱ部分相似,在这部分中,我们将循序渐进地创建一个更大型的游戏。这次要创建一个图形游戏,有图像、运动、用户交互和得分等。

本部分共有6章。

第19章将引入并介绍如何使用游戏引擎以及解释什么是游戏引擎。

在第20章到第23章中,我们将构建一个完整的、可玩的游戏。书中会提供可用的图片(是的,我们就是这么体贴)。

第24章总结了许多可以添加到游戏中的有趣的点子。

在这个部分,可复制的代码会变少(因为学到这里时,大家都已经是专家了)。

同时,要讲解如何改动和更新代码来得到自己想要的效果。

哦,对了,还要提一下第25章。是的,我们就是这么宠溺大家,因此额外添加了第25章。在本书的网页中可以找到。访问末尾的链接或扫描二维码即可访问。

特别说明

本书包含许多下面这样带有图标的方框。它们分别有以下的含义。

新术语

标题 我们不仅要讲解如何编程,还要帮助大家像一名真正的程序员那样说行话。一旦接触到新的单词或短语,我们就会在这样的文本框中进行释义。

小贴士

标题 程序员总是喜欢想方设法寻求效率和节省时间。这种文本框中包含一些捷径和节约时间的点子或者能让编程变得更简单的小知识。

补充说明

这种文本框中包含数不胜数的实用注释,还有一些不那么实用但很有趣的

注释。

挑战

这个方框一出现,就意味着我们即将开始额外布置任务(加分项)。不过,这可不是什么家庭作业,而是一些有趣的任务。如前所述,在这本书中,希望大家不是通过阅读而是通过实践来学习编程。我们将帮助大家创建许多程序,有些是简单的小程序,有些是更复杂的程序,其中许多程序后面都带有一个供大家自行钻研和解决的挑战练习。不要担心,若是遇到了困难,则随时可以查看本书的在线提示和解决方案。

最后,请留意书中显示的二维码,比如下面这个。扫描它们即可访问本书英文版配套网站的页面,其中包含着实用的链接、可下载的代码、挑战练习的解决方案等。

获得帮助

在阅读本书的过程中,偶尔可能需要一些帮助。碰到这种情况时,可以采取下面这几种方式。在浏览器的地址栏,输入https://forta.com/books/0137653573,访问本书英文版网站。也可以扫描下面的二维码。网站包含着针对英文原书的很多提示、解决方案和更多拓展内容。也可以通过小助手,加入Python社群。

当然,也可以像大多数程序员那样,用浏览器搜索。输入具体的问题,例如,完整的编程语言名称,就能找到答案。

也可以随时联系我们,在https://forta.com/和前面的提示中,可以找到我们的联系方式。

好了,欢迎来到Python编程世界!请翻过这一页,让我们正式开始吧!

目录

简明

第Ⅰ部分 Python玩起来:小游戏,大欢乐 1

第1章 预备知识 3

第2章 填字游戏:函数和变量 17

第3章 掷骰子游戏:库和随机性 29

第4章 计算时间差:datetime库 41

第5章 剪刀石头布 57

第6章 加密解密:for循环 65

第7章 猜数字游戏:条件循环 87

第8章 成为一名程序员 101

第9章 猜单词游戏 115

第10章 休息一下,动动脑子 125

第Ⅱ部分 Python认真玩:文字冒险类游戏 135

第11章 自己动手写函数 137

第12章 游戏探索 147

第13章 整理代码 161

第14章 减少,复用,回收,重构 169

第15章 携带和使用物品 185

第16章 分门别类:类的概念 199

第17章 颜色设置:colorama库 213

第18章 休息一下,动动脑子 221

第Ⅲ部分 Python好好玩:赛车竞速类游戏 237

第19章 赛车游戏 239

第20章 想象可能性 253

第21章 移动 269

第22章 碰撞,爆炸,轰鸣 277

第23章 最后的润色收尾工作 285

第24章 休息一下,动动脑子 297

详细

第Ⅰ部分 Python玩起来:小游戏,大欢乐 1

第1章 预备知识 3

了解计算机编程 4

什么是计算机 4

如何与计算机交流 5

什么是Python 7

安装和设置 8

安装Python 8

安装和配置Visual Studio Code 9

新建工作文件夹 11

编写第一个Python程序 13

选择工作文件夹 13

编程时间 15

小结 16

第2章 填字游戏:函数和变量 17

函数 18

变量 19

创建变量 19

使用变量 20

重要的变量规则 20

变量,更多的变量,更多更多的变量 21

获取用户输入 23

填字游戏 24

自己创造故事 24

添加变量 25

获取用户输入 26

小结 27

第3章 掷骰子游戏:库和随机性 29

库的使用 30

random库 30

生成随机数 31

选择随机项目 32

"3"不等于3 34

代码注释 36

一个骰子,两个骰子 38

小结 40

第4章 计算时间差:datetime库 41

与日期打交道 42

datetime库 42

使用datetime类 44

做决定 45

if语句 45

else语句 47

改进if语句 48

判断其他选项 50

使用in 51

战胜数学家 51

处理数字输入 52

综合应用 52

另一种解决方案 54

小结 55

第5章 剪刀石头布 57

更多字符串 58

游戏时间 59

处理用户输入 60

游戏的代码 61

最后一次调整 62

小结 64

第6章 加密解密:for循环 65

列表 66

创建列表 66

访问 68

修改 69

添加和删除 69

查找 70

排序 71

循环 73

遍历 74

循环处理数字 76

嵌套循环 77

破解代码 78

加密字符 79

取模 80

加密代码 81

解密代码 84

小结 85

第7章 猜数字游戏:条件循环 87

条件循环 88

游戏时间 92

简单的小游戏 92

综合应用 96

小结 100

第8章 成为一名程序员 101

程序员是怎样编程的 102

制订计划 102

从小处着手 103

游戏组件 104

限制用户输入 105

存储用户的猜测 107

显示列表 108

屏蔽字符 110

小结 114

第9章 猜单词游戏 115

游戏时间 116

游戏运行机制 118

小结 124

第10章 休息一下,动动脑子 125

生日倒计时 126

程序的需求 126

程序的流程 126

一些提示 126

小费计算器 128

程序需求 128

程序流程 128

一些提示 128

密码生成器 129

程序的需求 129

程序的流程 130

一些提示 130

小结 133

第Ⅱ部分 Python认真玩:文字冒险类游戏 135

第11章 自己动手写函数 137

重温函数 138

自己动手写函数 139

创建一个函数 139

传递参数 141

返回值 143

小结 146

第12章 游戏探索 147

游戏概念 148

游戏的结构 150

提示选项 151

处理选项 152

创建工作文件夹 153

游戏时间 153

测试 157

小结 159

第13章 整理代码 161

优化代码 162

字符串外部化 163

创建字符串文件 164

使用外部化字符串 167

小结 168

第14章 减少,复用,回收,重构 169

了解重构 170

识别重构机会 170

创建用户选择组件 172

设计可复用的组件 173

创建用户选项函数 177

更新代码 181

小结 184

第15章 携带和使用物品 185

规划物品栏系统 186

创建字典 187

使用字典 188

字典列表 189

物品栏系统 190

创建物品栏 191

植入物品栏系统 192

使用物品栏系统 193

显示物品栏 197

小结 198

第16章 分门别类:类的概念 199

玩家系统 200

创建玩家类 201

创建类 201

定义属性 202

创建方法 204

初始化类 207

使用新建的类 207

小结 211

第17章 颜色设置:colorama库 213

安装第三方库 214

使用colorama库 215

导入和初始化库 215

给输出着色 216

小结 219

第18章 休息一下,动动脑子 221

血量和生命数 222

购买物品 226

随机事件 229

与敌人战斗 231

保存和读取 233

小结 235

第Ⅲ部分 Python好好玩:赛车竞速类游戏 237

第19章 赛车游戏 239

pygame库 240

规划游戏 241

游戏概念 241

安装pygame库 242

创建工作文件夹 242

获取图片 243

正式开始 243

初始化pygame 243

显示内容 247

游戏循环 248

小结 252

第20章 想象可能性 253

文件和文件夹 254

设置背景 257

加入车辆 261

小结 268

第21章 移动 269

移动对手车辆 270

移动玩家 272

小结 276

第22章 碰撞,爆炸,轰鸣 277

撞车就算输 278

追踪分数 279

提高难度 281

小结 283

第23章 最后的润色收尾工作 285

优化游戏结束画面 286

暂停 289

形形色色的敌人 290

冰块 294

小结 296

第24章 休息一下,动动脑子 297

启动画面 298

分数和最高分 298

滑滑油 300

多个敌人 301

下一步计划 302

小结 302

欢迎进入精彩的Python大世界 303

Python还有更多精彩内容 304

网页开发 304

开发移动应用 305

游戏制作 306

精彩仍在继续 306

中英文术语对照及函数与方法 307

作者简介

编辑推荐

作为一本受欢迎、引人入胜且有趣的程序员入门指南,专为年轻人(10-17岁)和年轻人精心设计。经验丰富的教育工作者和程序员 将指导读者使用 Python这种世界上超流行的编程语言来创建游戏,学习游戏编程,从简单的项目到基于复古文本的冒险,再到完整的图形街机风格游戏。全书设计精良,包含很多有利于提升学习兴趣的设计元素,包括欢迎图像、有用的提示和花絮等以及专注于在玩乐的同时做事的引人入胜的可读文本。所有代码列表均为全彩,也有二维码链接到奖励内容、下载、挑战解决方案等。本书特色是帮助新一代年轻人在教育、职业方面做好准备,走好下一步。

作者寄语

著译者简介

本·福达(Ben Forta)

资深教育工作者,教过100多万人学习编程(真的,他亲自计算过)!他的40多本书被翻译成16种语言。他是奥多比(Adobe)教育项目的高级主管。

什穆尔·福达(Shmuel Forta)

拥有工程师、程序员、创客、修理匠和教师等多重身份。他不是在专用游戏电脑前像超级英雄一样向暗势力开展,就是在为通用汽车写代码。他有5年Python青少年编程经验,特别懂得如何通过游戏来激发学习热情。

周子衿

上学期间多次入选“院长优等生名录”,主修商业分析,运用数据模型和R语言帮助某企业在半年内实现了十倍的业务增长。奉行深思笃行的做事原则,有志于通过技术途径和感性思维来探寻商业价值与人文精神的平衡。代表译作有魔法书《轻松学Python》和超人书《Python超能学习手册》等。

电子资料

www.luweidong.cn

下一个