
《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超能学习手册》等。