神奇的编程世界
第1章:神奇的编程世界
欢迎来到编程的魔法王国
想象一下,如果你拥有一根神奇的魔法棒,能够让玩具自己动起来,让游戏按照你的想法运行,甚至创造一个属于你自己的虚拟世界——这听起来是不是像童话故事里的情节?其实,在现实世界中,这种“魔法”是真实存在的,而施展这种魔法的工具,就是编程。
当你用手机玩一款有趣的游戏时,是否想过这款游戏是怎么制作出来的?当你对智能音箱说“播放音乐”,它就能立刻播放你喜欢的歌曲,这是怎么回事?当你观看一部精彩的动画片,那些会说话、会跳舞的角色是如何“动起来”的?所有这些神奇的事情,背后都有程序在指挥。程序就像是一系列详细的指令,告诉计算机应该做什么、怎么做。而编程,就是书写这些指令的过程。
也许你会觉得编程是一件很难的事情,只有那些戴着眼镜、坐在电脑前敲键盘的“大人们”才能做到。但事实上,编程并没有你想象的那么神秘和复杂。就像学习画画要从涂鸦开始,学习钢琴要先认识音符一样,编程也有它入门的方式。在这本书里,我们将一起踏上编程的冒险之旅,从简单有趣的Scratch开始,一步步走进Python的世界,最终你会发现,编程就像搭积木一样有趣,而你就是那个创造奇迹的小魔法师。
计算机的脑袋是怎么工作的
在我们正式开始学习编程之前,先让我们来了解一下计算机是如何“思考”和“工作”的。虽然计算机看起来像是一个有着复杂电路和闪闪发光的屏幕的神秘盒子,但它的基本工作原理其实可以用一个简单的比喻来理解。
想象一下,你的家里有一个非常听话的小助手。这个小助手有几个特点:第一,他从来不自己做决定,必须有人告诉他要做什么;第二,他的记忆力非常好,能够记住很多很多的信息;第三,他做事非常非常快,快到一秒钟可以做成千上万件事情;第四,他听不懂含糊的指令,必须说得非常清楚具体。计算机就像这样一个“小助手”,我们叫它中央处理器,简称CPU。
CPU是计算机的大脑,是整个电脑最核心的部件。它负责处理所有的计算和判断工作。就像你需要用大脑来计算“1+1等于几”一样,计算机需要用CPU来计算复杂的数学题、比较不同的数据、决定下一步该做什么。CPU的工作速度非常快,现在普通的个人电脑CPU每秒钟可以执行几十亿次运算,这相当于一个人手工计算几辈子都算不完的工作量。
除了大脑CPU,计算机还需要一个“记忆宫殿”来存储信息,这就是内存和硬盘。内存就像是你书桌上的便签纸,用来临时存放正在使用的资料,读取速度很快,但是一旦断电,存储的信息就会消失。硬盘则像是你的大书柜,用来永久保存各种文件和程序,即使关掉电脑,里面的东西也不会丢失。一台普通的电脑通常有8到16GB的内存(就像你有8到16张便签纸),以及256GB到1TB的硬盘(相当于一个巨大的书柜)。
还有一个重要的部件是输入设备和输出设备。输入设备是把信息送进计算机的装置,最常见的就是键盘和鼠标——你敲击键盘或移动鼠标,就是在向计算机“说话”。输出设备则是把计算机处理后的结果展示出来的装置,比如显示器(屏幕)、音箱和打印机。显示器会显示出文字、图片和视频,音箱会发出声音,打印机可以把电子文档变成纸张上的文字。
让我们用一个小故事来把这些概念串起来。假设你想用电脑画一幅画:你先通过键盘和鼠标告诉计算机“我要画画”,这就是输入。计算机的大脑CPU接收到这个指令后,开始思考:“用户想要画画,我需要打开画图程序,然后根据用户的操作来绘制图形。”它从硬盘中调出画图软件,放入内存(就像从书柜里拿出一本书放在桌上),然后开始工作。当你用鼠标在屏幕上画线时,CPU实时处理鼠标的位置信息,计算出应该在哪里显示线条,然后把结果显示在显示器上——这就是输出。整个过程中,CPU一直在高速运转,你的每一个操作都会得到即时的反馈。
现在你知道了,计算机并不是什么神秘的魔法盒子,而是一个听话、快速、精确的电子机器。它虽然“聪明”,但所有的“聪明”都是程序员一点一点教会它的。下次当你打开电脑玩游戏、看视频或者做作业时,试着想一想:这背后有多少人写了多少代码,才让这台机器能够如此听话地为人们服务?
编程就在你身边
了解了计算机的基本原理后,让我们来看看编程是如何出现在我们日常生活中的。其实,编程并不只存在于电脑里,它已经渗透到了我们生活的方方面面。有时候它藏在你看不见的地方,有时候它就在你手边。下面,让我们一起找出身边的那些“编程小秘密”吧。
打开你的手机,看看桌面上那些五颜六色的图标。每一个APP(应用程序)都是程序员用代码编写出来的。微信能让你和朋友聊天,是因为有程序在处理消息的发送和接收;抖音能让你刷到源源不断的视频,是因为有程序在分析你的喜好并推荐相关的内容;游戏《王者荣耀》里英雄的每一个动作、技能的每一次释放,都是程序精确计算后呈现出来的效果。你知道吗?一个大型手机游戏可能有几十万行代码,如果把这些代码打印出来,堆起来可能有几层楼那么高!
智能音箱是另一个编程无处不在的例子。当你对着小爱同学说“小爱同学,播放周杰伦的晴天”时,这个过程包含了很多编程的智慧。首先,音箱需要用程序来分析你说的话,把你的语音转换成文字,这个技术叫做语音识别。然后,它需要理解你想做什么——“播放音乐”是什么意思,“周杰伦”是谁,“晴天”是什么歌曲——这个过程叫做自然语言理解。最后,它要找到对应的歌曲并播放出来,同时还要考虑音量、节奏等因素。这整个过程都是通过程序来完成的,而编写这些程序的,就是那些厉害的程序员们。
你最喜欢的动画片是怎么制作出来的呢?以前,动画片需要画师们一张一张地手绘,一张普通的动画片每秒需要画24张画面,一部90分钟的电影就需要画出十几万张画稿,工作量巨大。而现在,有了计算机动画技术,很多工作可以交给程序来完成。比如,皮克斯的动画师们会使用专门开发的动画软件,这些软件里有无数行代码在默默工作,帮助他们创建3D模型、设计场景、控制角色动作。一个角色的“喜怒哀乐”可以通过程序来精细控制,让表情变化更加自然流畅。
机器人也是编程的杰作。你可能在商场里见过迎宾机器人,它们能跟人打招呼、回答问题、带路指引。这些机器人的“大脑”里运行着复杂的程序,让它们能够识别人的面孔、理解人类的语言、判断应该做出什么反应。在一些工厂里,还有更加专业的机器人,它们能够精确地组装电子产品、搬运沉重的货物,这些机器人同样需要程序员编写精确的指令,告诉它们每一步该怎么做。
智能家居也是编程的成果。当你出门在外,用手机APP控制家里的空调提前开启,让房间在你回家前就变得温暖舒适;当你躺在床上,喊一声“关灯”,卧室的灯就自动熄灭了;当你离开家时,智能门锁自动上锁、安全摄像头开始监控。这些看似神奇的功能,背后都是程序在协调各种设备,让它们能够“听懂”你的指令并执行相应的操作。
甚至连这本书的诞生也离不开编程!出版社使用专门的排版软件来设计书页的布局,印刷机虽然看起来是机械的,但它的运行也需要程序来控制每一个细节。从你手中的这本书,到你家里的各种智能设备,编程就像空气一样,悄悄地存在着,让我们的生活变得更加便捷、有趣和丰富多彩。
Scratch:编程世界的彩色积木
现在你已经知道了编程在我们生活中无处不在,接下来让我们来认识一下两个重要的编程工具。我们先从Scratch开始,因为它是专门为编程初学者设计的,特别是像你这样的小朋友们。
Scratch是由美国麻省理工学院(MIT)媒体实验室的终身幼儿园组开发的,于2007年正式发布。它的设计理念是“用积木的方式学编程”,让编程变得像搭积木一样简单有趣。打开Scratch的界面,你会看到各种各样的彩色方块,它们代表不同的指令。这些方块就像乐高积木的零件,只需要把不同的积木块拼在一起,就能让角色做出各种动作。
Scratch的操作界面主要由几个部分组成。最中间的大区域是脚本区,这里是你编写程序的地方,你可以把不同颜色的积木块拖到这里,按照逻辑顺序拼接起来。左侧是积木块面板,里面有各种不同类型的指令积木,按颜色分类:运动类的积木是蓝色的,控制类的积木是橙色的,外观类的积木是紫色的,声音类的积木是粉色的,侦测类的积木是青色的……这样即使你不认识字,也能通过颜色快速找到需要的积木。
Scratch界面中还有两个非常重要的区域:舞台区和角色列表。舞台区就像一个小剧场,是你程序运行后显示效果的地方,里面有各种各样的背景和角色。角色列表则显示了你的“小演员”们,你可以添加新角色、删除不需要的角色,或者修改角色的造型。Scratch自带了一个可爱的小猫作为默认角色,它会陪伴你完成很多练习。
Scratch能够做很多事情。你可以控制小猫移动、旋转、改变大小,让它画出各种漂亮的图案;你可以让小猫说话、播放音乐、制作你自己的小动画;你还可以制作简单的小游戏,比如接水果、弹跳球、打砖块等等。更棒的是,Scratch有一个在线社区,全世界几千万的小朋友们在那里分享自己的作品。你可以玩别人做的游戏,看别人做的动画,也可以把自己的作品上传上去,让更多人看到你的创意。
Scratch有一个独特的设计叫做事件驱动。简单来说,就是当“某件事情发生”的时候,程序才会执行。比如,当“绿旗被点击”时开始运行程序,当“空格键被按下”时让角色跳起来,当“角色被点击”时让角色说话。这种设计非常符合小朋友的思维习惯,让我们可以像讲故事一样来编写程序。
Scratch还有一个优点是“所见即所得”。你写的每一块积木,都能立刻在舞台上看到效果。如果你发现小猫没有按照你想象的方式移动,只需要检查一下积木的顺序是否正确,或者参数是否设置得当,然后调整一下,再运行看看。这种即时反馈让学习编程变得非常有趣,也让你能够通过不断尝试来加深理解。
Scratch的版本也在不断更新。最新的Scratch 3.0版本不仅支持电脑使用,还能在平板电脑上运行,这让编程变得更加便捷。它还增加了许多新的功能,比如支持更多类型的扩展,可以连接micro:bit这样的硬件设备,让你的程序能够控制真实世界中的小发明。
学习Scratch就像是学习写作文之前的“说话练习”。你不需要担心语法错误,不需要记忆复杂的单词,只需要用积木块把你的想法表达出来。这个过程能够帮助你理解编程的基本概念——什么是顺序执行,什么是循环重复,什么是条件判断——这些概念在以后学习Python时仍然会用到,而且会变得更加重要。
Python:通往真实世界的桥梁
当你对Scratch已经非常熟悉,能够用它做出有趣的作品之后,下一个目标就是学习Python。Python是一种真正的编程语言,被全世界的程序员广泛使用。它被称为“胶水语言”,因为它可以用来连接各种各样的系统和工具;同时也被叫做“初学者友好语言”,因为它的语法设计得非常简洁易读,非常适合作为第一门真正的编程语言来学习。
Python诞生于1991年,由荷兰程序员吉多·范罗苏姆发明。吉多当时觉得现有的编程语言都太复杂了,于是决定创造一种更简单、更人性化的语言。他用英国喜剧团体“Monty Python”的名字来命名这门语言,所以Python的发音其实不是“派森”,而是接近“派森”,虽然很多中国人习惯叫它“派森”,但如果你想显得更专业,可以试着读成“派森”。Python的标志是两条蓝色的蛇,这也是为什么很多Python相关的图标和吉祥物都是蛇的形象。
与Scratch用彩色积木块来编程不同,Python使用纯文本的方式来编写代码。你需要用键盘一个字一个字地敲出来,虽然看起来没有Scratch那么直观,但这种方式更加接近真实世界中程序员的工作方式。让我们先来看一个最简单的Python程序:
```python print("Hello, World!") ```
这行代码的作用是在屏幕上显示“Hello, World!”这几个字。虽然它只有一行,但几乎所有程序员学习编程时写的第一个程序都是这样的。在编程世界里,“Hello, World!”就像是一个打招呼的方式,表示“我开始学习编程啦”。
Python的语法设计得非常接近英语,所以如果你有一定的英语基础,学起来会更容易。比如,“print”在英语里是“打印”的意思,在Python里它确实是用来“打印”文字的;“if”是“如果”的意思,用来表示条件判断;“for”是“为了”的意思,用来表示循环。Python的代码通常不需要花括号“{}”来包裹代码块,也不需要每行都加分号,它用缩进(就是每行开头的空格)来表示代码的层次关系,这让代码看起来更加清晰整洁。
Python的应用范围非常广泛。谷歌、亚马逊、Netflix、Instagram这些大名鼎鼎的科技公司都在使用Python来构建他们的服务。YouTube最初就是用Python开发的,后来虽然性能关键的部分换成了其他语言,但YouTube的很多功能仍然是用Python实现的。在人工智能和机器学习领域,Python更是绝对的霸主,几乎所有主流的深度学习框架如TensorFlow、PyTorch都有Python接口。在科学计算领域,Python也扮演着重要角色,天文学家可以用它分析望远镜拍摄的星空图片,气象学家可以用它预测天气变化,生物学家可以用它研究基因序列。
学习Python还有一个好处,就是它有非常丰富的“工具库”。你可以把工具库想象成别人已经写好的代码组件,就像你已经拥有了很多现成的积木,不需要从零开始。比如,你想让程序画一幅画,有一个叫做turtle的库可以帮你;你想处理数据,有一个叫做pandas的库可以帮你;你想做一个人工智能小程序,有一个叫做scikit-learn的库可以帮你。这些库大大降低了编程的难度,让你可以专注于解决实际问题,而不是被底层的技术细节所困扰。
Scratch和Python各有特点,适合不同的场景。Scratch适合入门学习,适合制作游戏和动画,适合培养编程思维;Python适合进阶学习,适合解决实际问题,适合探索计算机科学的更多领域。在这本书里,我们会先用Scratch打好基础,理解编程的基本概念和思维方式;然后逐步过渡到Python,学习真正的编程语法,用代码创造出更有实际价值的作品。
Scratch与Python的对比
为了让你更清楚地了解Scratch和Python的区别,让我们用一张表格来做个对比:
| 对比项目 | Scratch | Python | |---------|---------|--------| | 编程方式 | 拖拽彩色积木块 | 键盘输入文本代码 | | 适合年龄 | 8-12岁 | 10岁以上 | | 学习难度 | 低,易上手 | 中等,需要记忆语法 | | 应用场景 | 游戏、动画、入门学习 | 实用工具、数据分析、AI | | 社区规模 | 超过8000万会员 | 全球最大的编程社区之一 | | 代码可见性 | 图形化,不显示代码 | 显示完整代码 | | 执行速度 | 相对较慢 | 非常快 | | 可扩展性 | 有限 | 几乎无限 |
从上表可以看出,Scratch和Python并不是相互替代的关系,而是循序渐进的关系。Scratch帮助你理解“程序是什么”、“计算机是如何工作的”、“什么是逻辑思维”;Python则教你“如何用代码表达思想”、“如何解决实际问题”、“如何成为真正的程序员”。
打个比方,Scratch就像是儿童游泳池,水浅而且有各种安全的浮具保护,你可以放心地玩耍、学习游泳的基本动作;Python则像是真正的泳池或者大海,水更深,空间更大,但同时也意味着更大的自由度和更多的可能性。当你从Scratch过渡到Python,就像是从儿童游泳池来到了成人泳池——你需要自己判断水深、自己注意安全,但你能游得更快、更远、做出更多的动作。
还有一个重要的区别是,Scratch主要是用来“创作”的工具——创作游戏、动画、互动故事;而Python主要是用来“做事”的工具——处理数据、自动化任务、开发网站。在Scratch中,你更像是一个“小导演”,在舞台上指挥你的角色们表演;在Python中,你更像是一个“工程师”,用代码来构建一个系统或解决一个问题。
不过,这并不意味着Scratch就不能用来做事,或者说Python就不能用来创作。事实上,用Scratch也能做出很有深度的项目,比如复杂的多人游戏、模拟真实物理现象的仿真程序;用Python也能做出很有艺术感的作品,比如生成式艺术、数据可视化、互动网页。在学习的过程中,你会发现两种工具的优势可以互补,你的创意空间也会越来越大。
搭建你的编程工作室
好了,现在你已经对编程有了初步的认识,也了解了Scratch和Python这两个重要的工具。接下来,让我们来实际动手,搭建你的编程工作室吧!就像画家需要画布和画笔、木匠需要工作台和工具一样,程序员也需要自己的“工作室”——也就是编程环境。
编程环境包括硬件和软件两个部分。硬件就是你的电脑或平板设备,软件就是你要安装的编程工具。不用担心,你的设备很可能已经满足要求了!
先来说说硬件要求。对于Scratch来说,它的配置要求非常低,几乎任何能正常使用的电脑或平板电脑都可以运行Scratch。如果你要使用电脑,Windows、Mac或者Linux系统都可以;如果使用iPad,安卓平板也可以。Scratch 3.0对硬件的要求是:至少1GB的内存(现在的电脑基本都远超这个数字),以及一个能正常显示的显示器。当然,如果电脑太老旧,运行起来可能会有些卡顿,影响使用体验。
对于Python来说,要求稍微高一点,但也不过分。任何能运行现代浏览器的电脑都可以安装Python。建议的硬件配置是:至少4GB的内存(为了流畅运行),至少10GB的硬盘空间(用于安装Python和各种工具库),以及一个稳定工作的显示器。这些要求对于现在的电脑来说都很容易满足,即使是你家里用了好几年的老电脑,应该也问题不大。
现在让我们开始安装软件。先从Scratch开始,因为它是更简单的那个。Scratch有两种使用方式:在线版和离线版。
在线版只需要打开网页浏览器,访问scratch.mit.edu网站,点击“创建”按钮,就可以开始编程了。这种方式最简单,不需要安装任何东西,但需要稳定的网络连接。如果你想把作品保存到Scratch网站上,还需要注册一个免费账号。
离线版需要下载并安装Scratch Desktop软件。即使没有网络,或者网络不稳定,也可以正常使用。访问scratch.mit.edu/download,下载对应你操作系统的安装包,然后按照提示一步一步安装就可以了。安装完成后,你就可以在电脑上直接打开Scratch,不需要联网。
我们推荐两种方式都安装。平时练习用在线版更方便,可以把作品保存到云端;如果出门旅行或者网络不稳定,离线版就派上用场了。而且,离线版和在线版的界面和使用方法几乎一模一样,学会一个就能用另一个,完全不用担心切换的问题。
接下来让我们安装Python。Python的安装稍微复杂一点,但只要你按照步骤来,也不会有什么问题