第一章 · 发光的蓝色鹦鹉:初识编程精灵Python
第一章 · 发光的蓝色鹦鹉:初识编程精灵 Python
办公室的下午总是安静得让人犯困。午后的阳光从玻璃窗斜斜地照进来,在小米爸爸办公桌的边缘镀上一层蜂蜜色的光晕。复印机在角落里发出轻微的嗡嗡声,像一只正在打盹的大猫。文件夹们整整齐齐地码在铁皮柜里,最上面那一本的标签写着「2024年度报表(终版)」——其实它已经被改过十七遍了,只是谁也没工夫去把标签撕下来重贴。
小米趴在爸爸的办公椅上,脚尖刚好能够到地面。这是周五下午四点半,爸爸还没来接她,所以她被允许在办公室里待一会儿。妈妈的叮嘱还在她耳朵边上回响:「不许乱碰文件,不许碰电脑,不许碰那个——」
妈妈说的「那个」,是指角落里的旧书柜。
那是一个又高又瘦的木柜,颜色暗沉得像一块被遗忘的巧克力。它的玻璃门上落满了灰尘,把里面那些花花绿绿的书脊都蒙上了一层薄雾。柜门上贴着一张泛黄的纸条,上面用黑色马克笔写着三个字:
「禁 区」
小米从小就对这三个字充满了好奇。妈妈越是强调不许碰,她就越是想象那里面藏着什么——是怪兽?是宝藏?还是一只能听懂人话的猫头鹰?
今天,妈妈不在。
小米从椅子上滑下来,蹑手蹑脚地走到旧书柜前。她踮起脚尖,指尖轻轻碰到了那个玻璃门。冰凉的触感让她打了一个小小的寒颤。玻璃门没有锁——它只是被一个老式的铜插销扣着。插销发出一声轻微的「咔哒」,像一个老人在梦中咳嗽了一声。
门开了。
灰尘在阳光里跳起了舞。小米眯起眼睛,看见里面塞满了书:最下面一层是厚得像砖头一样的会计手册;中间一层是各种办公软件的说明书,封面被翻得卷了边;最上面一层——
最上面那一层堆着几本小蓝书。
说「小蓝」其实不太准确,因为它们的颜色是一种介于天空和湖水之间的蓝色,封面是布纹的,摸上去有一点点粗糙。每本书的书脊上都印着一行烫银的字:
「Python 编程:从入门到……(后面的字被磨掉了)」
小米伸手抽出一本。书比她想象的轻。她翻开第一页,看见一行手写的字:
> *「给我亲爱的小蓝。学会了记得回来教我。——妈妈,1998年」*
「妈妈?」小米愣住了。她从没见过妈妈写这样的字迹,也从没听妈妈说过她会什么「Python」。妈妈明明连手机里的天气预报都懒得更新,怎么可能——
就在这个时候,那本书自己动了。
不是被风吹动的——办公室里没有风。是书页自己动了起来,像有一只小手在里面翻着玩。一页,两页,三页,越翻越快,最后整本书都在小米的手里颤抖起来,发出一种很轻很轻的、像铃声一样的嗡嗡声。
蓝色的光从书页间透出来,越来越亮。
小米差点把书扔出去——但她没有。她咬着嘴唇,盯着那团越来越亮的光。光芒从书缝里溢出来,爬过她的手指、手腕、手臂,把她整个人都染成了淡淡的蓝色。
然后,光「啵」的一声散了。
小米的手心里,多了一只小鸟。
不,不是小鸟。是一只鹦鹉。但它浑身上下都是透明的蓝,像是用最纯净的海水冻成的小雕塑。它的眼睛是两颗小小的黄宝石,喙是淡淡的珠光白。它的翅膀很小,羽毛像涟漪一样层层叠叠,每一层都在微微发光。
小米愣了足足五秒钟。
那只蓝色鹦鹉先开口了。它的声音不像鹦鹉,反而像一个七八岁的小女孩,清清脆脆的,带着一点点鼻音:
「你终于找到我啦。」
「你……你是谁?」小米结结巴巴地问。
「我是小蓝呀,」蓝色鹦鹉歪了歪脑袋,「这本书是我妈妈写给我的,现在我妈妈把它教给你啦。」
「我妈妈?」
「对呀,就是刚才翻开书看见的那行字的那个妈妈。她年轻的时候也是个魔法师,后来她去忙别的事啦,就把我留在了这里。等了二十多年,我终于等到一个新的小主人。」
小米眨了眨眼睛。办公室里的复印机又「嗡嗡」响了一声,像是在配合这个奇怪的时刻。
「等一下,」小米说,「你是说,你是我妈妈留给我的……魔法生物?」
「差不多吧,」小蓝在她手心里走了一圈,「不过我更喜欢别人叫我『编程精灵』。我叫 Python,念作『派森』,不过大家都叫我小蓝,因为我的颜色就是这个蓝啦。」
「Python,」小米小声重复了一遍,「这个名字好奇怪,是什么意思呀?」
小蓝拍了拍翅膀:「Python 是一个英语单词,意思是『蟒蛇』。发明我的那个叔叔,他是一个特别喜欢看《蒙提·派森的飞行马戏团》的人,那个马戏团的创始人就叫 Python,所以他就用这个名字来给我取名啦。后来大家觉得这个名字响亮又好记,就一直用到了今天。」
「所以你跟蛇没有关系?」
「没有没有,」小蓝赶紧摇头,「我最怕蛇了。我是一只温柔的、有点话痨的、喜欢蓝色的小鸟。」
小米忍不住笑了出来。她把手指伸过去,小蓝顺势跳到她的手指上,站稳之后还用爪子轻轻挠了挠她的皮肤,像一只真正的小鸟在撒娇。
「那,」小米问出了那个她最想问的问题,「你到底能做什么?」
小蓝张开翅膀,蓝色的光又亮了起来。这一次,光不是在书页里,而是在她的翅膀尖端,像是两根小小的荧光棒。
「我会的事情可多啦,」她得意地说,「我可以帮你整理文件,可以帮你算账,可以帮你写邮件,可以帮你画画——只要你告诉我你要什么,我就能把『咒语』念出来,让电脑乖乖听话。」
「咒语?」
「嗯,」小蓝点点头,「你知道魔法师念咒语的时候,念的是一串奇怪的词对不对?比如『阿布拉卡达布拉』什么的。电脑其实也需要咒语。只不过我们的『阿布拉卡达布拉』是用一种叫『编程语言』的形式写出来的。我会的这一种,就叫做 Python。」
「所以,」小米恍然大悟,「编程就是——写咒语?」
「对啦!」小蓝兴奋地拍了拍翅膀,「而且是世界上最厉害的咒语。因为你写的咒语,可以指挥电脑去做任何它会做的事情。电脑不会累,不会发脾气,不会忘记,也不会算错。只要你写对了,它就会一遍又一遍地帮你做完。」
小米看着手心里这只发着光的小鸟,眼睛里第一次出现了某种和小时候完全不同的东西——不是恐惧,不是好奇,而是一种「我想要学会」的渴望。
「那,」她说,「你能教我念咒语吗?」
小蓝眨了眨她那两颗黄宝石眼睛。
「那可太好了,」她说,「不过在我们开始念咒语之前,我们得先把一件很重要的事情做好。」
「什么事情?」
「得先把『咒语书』安装到你的电脑上。」
小蓝从她的手指上飞起来,绕着她的脑袋转了一圈,然后稳稳地落在旧书柜的玻璃门顶上,像一个骄傲的小将军。
「下面,」她说,「就让我来告诉你,什么是编程语言——」
---
1.1 认识小蓝:什么是编程语言
「小蓝,」小米问她,「你能不能先告诉我,『编程语言』到底是什么意思?我听爸爸说过这个词,但他每次说完就会摆出一张『这个很复杂你听不懂』的脸。」
「你爸爸那样说,」小蓝坐在柜子顶上,小脑袋歪向一边,「是因为他想保护你。不过今天轮到我来啦,所以我尽量说得简单一点。」
她清了清嗓子——虽然鹦鹉其实并没有嗓子可以清——然后一本正经地开始讲解:
「先让我们想想,电脑是什么。」
「一台……会显示东西的机器?」小米试着回答。
「对,但太简单啦。再想想。」
「一台可以上网、可以打字、可以玩游戏、可以放视频的机器。」
「这就比较接近了。但本质上,电脑是一台『非常听话』的机器。」
小米皱了皱眉头:「电脑也会发脾气啊,每次我玩游戏卡住了,它就会卡在那里不理我。」
「那不是发脾气,」小蓝笑着说,「那是因为你『说的话』它听不懂。它不知道怎么反应,所以只能愣在原地。它其实很想帮忙的,只是——没有听明白你想让它干什么。」
「所以,」小米若有所思地说,「它听不懂人话?」
「完全正确。电脑只听得懂一种话,那就是『机器语言』。」
小蓝展开翅膀,用翅膀尖在玻璃门上划了几下,蓝光留在玻璃上,像粉笔一样画出了一段奇怪的符号:
```mermaid flowchart LR A[人类的想法] --> B{翻译成机器语言} B --> C[01010010 01001000] C --> D[电脑执行] D --> E[屏幕上出现结果] ```
「你看见那串 `0` 和 `1` 了吗?」小蓝指着图说,「那就是机器语言。它只由两个数字组成:`0` 和 `1`。这两个数字可以组合出所有信息——图片、声音、文字、视频、游戏——但问题是,」她叹了口气,「人类写这种语言太痛苦了。」
「为什么呀?」
「你看,」小蓝在玻璃上又划了一串:
> `01001000 01100101 01101100 01101100 01101111`
「这一串看上去像乱码对不对?但是它翻译过来其实就只有一个词——Hello。你想想,如果我想让电脑显示『Hello, World!』,我得写多少串这样的东西?」
小米想象了一下,吐了吐舌头:「好多。」
「是好多,」小蓝点头,「多到你写一个稍微复杂点的小程序,可能就要写上几千个 `0` 和 `1`。科学家们早期就是这么干的,每个人写到后来都头疼得想把电脑砸掉。所以后来,有人就想出了一个好办法——」
「什么好办法?」
「创造一种『中间语言』。」
小蓝跳下柜子,飞到小米的肩膀上,凑近她的耳朵说:
「这种中间语言,看起来像英文单词和符号的组合,人类写起来不那么痛苦;而电脑呢,又可以通过一个『翻译官』,把这种语言转成它自己看得懂的 `0` 和 `1`。这种中间语言,就叫做——」
「编程语言!」小米抢答。
「答对啦,加十分。」小蓝在她肩膀上高兴地跳了跳。
小米突然明白了:「所以你——Python,就是一种编程语言,对不对?」
「是滴,」小蓝得意地抖了抖羽毛,「而且是一种非常厉害的编程语言。我可以告诉你,电脑学家们一共发明了好几百种编程语言。光是听起来比较有名的,就有 Basic、C、C++、Java、JavaScript、Ruby、Go、Rust……还有我,Python。」
「这么多!」
「是很多,」小蓝点头,「但你不需要会那么多种。就像魔法师学咒语一样,你只需要把自己最擅长的那一种,练到极致就已经非常厉害了。」
「那我为什么要选你呢?」小米歪着头问。
「问得好,」小蓝说,「下面这一节,我们专门来讲讲『为什么 Python 最好』。如果你听完还觉得别的更好,你可以去学别的——我是大度的编程精灵,不强求小主人哦。」
小米咯咯笑了起来。她突然意识到,自己已经很久很久没有这样笑过了。也许是从妈妈开始加班的某一天起,也许是爸爸的电脑坏掉她没法在上面画画的那个星期起,她已经习惯了那个有点孤单、有点无聊、有点无聊到只能抱着玩偶发呆的小米。
但现在,她的肩膀上站着一只发光的蓝色鹦鹉,告诉她一件世界上最酷的事情是可以学会的。
这种感觉,好久没有过了。
---
1.2 为什么 Python 最适合小学生和办公族
「其实,」小蓝说,「回答这个问题,我可以只用一个词。」
「什么词?」
「简单。」
她从米肩膀上飞起来,绕着办公室飞了一圈,最后落回那本蓝色的小书上。她用爪子翻开第一页——书自己配合地翻开了,停在一段印刷体上——小蓝用翅膀指着那一行,像老师指着黑板一样:
> *`print("Hello, World!")`*
「看见了吗?」她说,「这就是让人电脑在屏幕上显示出『Hello, World!』这句话的咒语。把它翻译成中文,就是——」
她顿了顿,故意学着魔法师的腔调:
「说出『Hello, World!』!」
小米瞪大了眼睛:「就这样?」
「就这样,」小蓝点头,「你看它的样子——`print` 是英文的『打印』,后面跟着一对括号,括号里是你要打印的内容。这一行读起来就像一句话:『请打印 Hello, World!』。是不是很像在说人话?」
小米点点头。她突然觉得,「编程」这两个字背后那道高高的墙,好像松动了一点点。
「这还不是最厉害的,」小蓝继续说,「最厉害的是——就算你把上面这句话写错了,写成 `prnt("Hello, World!")`——少了一个字母——电脑也不会生气,不会报错崩溃。它只会很温柔地告诉你:」
她清了清嗓子,用一种特别委屈的声音说:
> *「SyntaxError: invalid syntax」(语法错误:无效的语法)*
「听见了吗?它说的是『你的语法有问题』,而不是『你这个笨蛋写错了』。这就是 Python 一直被人喜欢的原因——它对初学者非常友好。」
「可是,」小米想到了一个常常困扰她的词,「我不是大学生,也不是工程师,我只是个小学生。我爸爸是会计,他要算很多账。Python 对我们这样的人也友好吗?」
「太友好了,」小蓝兴奋地拍起翅膀,「这正是我要告诉你的第二个理由——Python 几乎什么都能做。」
她飞回米的手心,用爪子在她掌心的纹路上一点一点地比划:
「第一,如果你是小学生,Python 可以帮你做数学作业。比如让你写一个程序,自动算出从 1 加到 100 是多少——你能算出来吗?」
小米摇摇头:「5050 嘛。我听老师讲过高斯的故事。」
「但你能列出 100 个加法吗?」
「当然不能。」
「Python 可以。它只需要一个简单的咒语——」小蓝比划着:
```python total = sum(range(1, 101)) print(total) ```
「这两行的意思是:把 1 到 100 的所有数字加起来,然后打印出来。运行之后,屏幕上就会显示——」
> `5050`
「是不是很神奇?」
小米点点头,眼睛亮亮的。
「第二,如果你爸爸是会计,Python 可以帮他做账。比如把一整个 Excel 文件打开,自动把所有的数字加起来,自动算出每一列的总和,自动生成一个漂亮的图表——这些他每天要花两三个小时重复做的事情,Python 也许两三分钟就搞定。」
「它真的能打开 Excel?」
「当然能,它能打开几乎所有办公文件——Word、Excel、PDF、PPT、邮件、图片——只要你说清楚你想做什么,它就会一件一件地帮你做完。而且不会累,不会出错,不会抱怨。」
小蓝飞了起来,绕着小米的脑袋转了一圈:
「第三,Python 还有一个特别棒的地方——它背后有一个巨大的『咒语库』。」
「咒语库?」
「嗯,」小蓝解释道,「很多聪明的魔法师 — —也就是程序员哥哥姐姐们 — —已经帮我写好了成千上万个小咒语。这些小咒语被装在一个一个『盒子』里,这个盒子有个专门的名字,叫『库』或者『包』。你想做什么,就去找到对应的那一个盒子,拿出来用就行了。比如——」
她在空中点了点,列出几个名字:
> *numpy —— 数学计算* > *pandas —— 处理表格* > *matplotlib —— 画图表* > *requests —— 上网抓信息* > *pygame —— 做小游戏*
「你想让你爸爸的 Excel 自动算账?那就用 pandas 这个盒子。你想让他看见一个自动生成的漂亮图表?那就用 matplotlib。你想做一个让小朋友玩的小游戏?那就用 pygame。」
「听起来……像工具箱!」小米兴奋地说。
「你这个比喻太准确了,」小蓝高兴地拍了拍翅膀,「编程语言本质上就是一个工具箱。Python 是所有工具箱里,东西最齐全、最容易找到的那一个。」
「可是,」小米又问,「是不是因为这么简单,所以它就跑得慢?」
小蓝眨了眨眼:「你这个问题问得真好。说明你是一个思考型的孩子。」
她飞到那本蓝色书的第二页,用爪子指着另一段印刷字:
> *Python 之禅:* > *优美胜于丑陋(Beautiful is better than ugly)* > *明了胜于晦涩(Simple is better than complex)*
「这是 Python 最早的发明者 Guido 叔叔写的一段话。它告诉我们,Python 是『为了人类可读』而设计的语言。它的速度不是最快的,但是对我们这些『念咒语』的人来说,这一点不重要。因为——」
她停了一下,认真地看着小米:
「我们是人,不是机器。我们的时间比 CPU 珍贵得多。」
这句话小小的,却一下子戳中了小米。她想起了妈妈每天晚上加班回来疲惫的脸,想起了爸爸对着 Excel 表格揉太阳穴的样子,想起了隔壁王阿姨哭着说「月底盘点好累」的声音。
这些人,都不会写咒语。但如果有人帮他们写了,他们每天就能省下好几个小时。
「小蓝,」她说,「我决定了,我要学 Python。」
小蓝高兴得差点从她肩膀上掉下去:「那我们就从最最最基础的一步开始——」
「什么?」
「把你电脑里的『咒语书』召唤出来。」
---
1.3 在电脑上召唤 Python:安装过程详解
「等等,」小米举起手,「召唤是什么意思?我是不是要念一段很长的咒语?」
「哈哈,」小蓝笑了,「在很久很久以前,确实需要念一段很长的咒语。但现在,召唤我已经像打开应用商店下载一个游戏一样简单。」
她从米肩膀上飞下来,落在爸爸办公桌的键盘上。她跳到那台灰色的笔记本电脑的开机键上,回头看着小米:
「你爸爸用的是什么电脑?」
小米看了看:「Windows。那个标志我认识。」
「好,」小蓝点头,「Windows 是世界上最常见的电脑系统。另外还有两种比较常见的——苹果电脑的 macOS,还有非常专业的 Linux。不过这些你都不用记,今天我们就用你爸爸的电脑来演示一次完整的过程。」
她用翅膀点了点键盘:
「第一步,打开浏览器。浏览器就是让你看网页的程序,常见的名字有 Chrome、Edge、Firefox。在屏幕左下角或者桌面上应该都能找到。」
小米蹲到爸爸的椅子前,按下了电源键。电脑发出一声轻响,屏幕亮了起来。Windows 的蓝天白云桌面出现在面前。
「找到 Edge,对,就是那个蓝蓝的 e 图标,」小蓝指挥着,「双击它。」
小米双击了 Edge。屏幕中间出现了一个搜索框。
「好,」小蓝继续说,「接下来是最关键的一步:在搜索框里输入 `python.org`,然后按回车。」
小米认真地一个个敲上去:`p`、`y`、`t`、`h`、`o`、`n`、`.`、`o`、`r`、`g`。然后按下回车。
屏幕上出现了一个网站。网站的顶部有一条蓝色的横条,中间画着 Python 的 logo——两条缠绕的蛇组成一个圆环,弯弯曲曲的,像两条在跳舞的丝带。logo 下面写着大大的几个字:
> *Python – Get Started* > *(Python — 开始)*
「看见了吗?」小蓝得意地说,「这就是我的家。我的所有官方信息都来自这里。这里只发布真正的我,没有假冒伪劣产品。」
她从键盘上飞起来,绕着屏幕边缘飞了一圈,最后停在屏幕右上角一个亮亮的黄色按钮前:
「看见这个 `Downloads`(下载)按钮了吗?点击它。」
小米的爸爸听到 `Downloads` 这个词,竖起了耳朵。但小米其实还没能让爸爸听见——她现在只是在想象。
让我们跟着小米一起想象整个安装过程。这是第一次召唤 Python 时最值得记住的清单:
👉 安装 Python 的八个步骤(Windows 版)
1. 打开浏览器,进入 https://www.python.org 这是 Python 唯一官方网站。所有下载都从这里开始。
**2. 点击页面顶部的 "Downlo