
《少博士趣学Python》是一本编程与科技结合的启蒙书籍,全书从简单的小示例入手,介绍核心编程概念,并通过多个简单、有趣的编程案例,启发初学者探索身边的科技。例如,编写聊天机器人、扫地机器人、数学试卷机器人、绘图软件、密码程序等。书中不仅讲解了Python语法,还通过编程示例,给青少年读者以信息世界的启蒙。
前言 少儿学编程该学什么 在多年的少儿编程教学过程中,我时常会思考这样一个问题:青少年学编程究竟应该学什么?有人说应该让孩子学会编写动画和游戏,让他们从消费者变成创造者;有人说未来科技人才短缺,需要从小培养顶尖的科技人才;有人说要锻炼计算性思维能力和解决问题的能力。这些我都非常认同。 但我认为还有一点非常重要,那就是通过学习编程,了解我们这个以科技为核心的世界。我们需要领会计算机是如何快速进行重复性强、计算量大的工作,大范围地解决问题的。因为有了计算机,我们才能研究大量的基因信息,帮助医生治病救人;才能分析来自宇宙的大量数据,对未知世界进行探索;才能有自动驾驶及手机支付,让生活变得更加便捷。就像孩子们小时候会看百科全书了解身边的世界一样,他们也需要了解这个信息世界是如何运作的。 同时,我们每天被科技“宠爱”着,依靠算法接收着我们想看的新闻、视频、产品和游戏,作为科技的消费者,我们的行为越来越多地被算法和数据所影响。只有了解它们,才能更清晰地面对这个以数据和科技为核心的世界。 本书特点 在《少博士趣学 Python》中,我希望教给读者的不仅是如何写 Python 代码,更是通过编写有趣的编程项目初识科技背后的故事。我们从简单的例子入手,逐渐增加编程项目的难度,通过不同的练习,思考身边的科技。本书并不是一本 Python 语法大全,Python 语言博大精深,而本书只接触到了冰山一角。 本书介绍了 Python 的许多入门知识,例如基本的语法、模块的使用,以及如何用Tkinter 编写大家熟悉的图形化界面程序等。读完本书后,你就可以开始编写强大的程序了! 阅读对象 这是一本编程与科技结合的启蒙书籍,我并不想写一本针对资深极客或程序员的书,而是希望让更多的大朋友和小朋友通过这本书尝试编程。这本书适合: ? 想学编程的小朋友 ? 想教小朋友编程的老师 ? 想教小朋友编程的家长 ? 对科学技术好奇,想在轻松、有趣的环境下探索编程的大朋友当然,因为本书面向初学者,所以还有许多知识是书里没有讲到的,比方说制作游戏的Pygame 模块、面向对象的程序设计方式等。我相信一名程序员应具备的能力之一是具有很强的学习能力,毕竟科技每几年都要更新迭代一次,一名好的程序员是有能力和动力去持续学习的。希望你也能够持续不断地学习,不断让自己进步! 如何使用本书 本书的每一章都经过了精心安排,在此建议初学者从头开始按顺序阅读,完成每个练习。另外,希望大家能够大胆尝试,改一改代码,看看修改过后的效果,在实践中学习。希望大家能够根据自己的创意和想象,编写出有趣的作品,帮助自己和身边的人解决问题。祝愿大家坚持学习,享受编程的乐趣! 本书为练习题提供了参考答案,读者可通过以下网址下载:http://www.broadview.com.cn/35461。 最后,我想特别感谢我的同事刘茗玉,她在我编写本书的过程中给了我莫大的帮助! 作 者
第 1 章 编程与我们的生活 ............................................................................... 1 1.1 为什么学编程...............................................................................................................1 1.1.1 通过编程了解以科技为核心的世界........................................................... 1 1.1.2 编程很有趣..................................................................................................... 1 1.1.3 编程能锻炼你的思维能力............................................................................ 2 1.2 为什么学 Python .........................................................................................................2 1.3 如何学好编程...............................................................................................................2 1.4 计算机的长处和不足...................................................................................................2 1.5 下载并安装 Python....................................................................................................3 1.5.1 Windows 系统.............................................................................................. 4 1.5.2 Mac 系统........................................................................................................ 5 1.6 在 Shell 里编写代码....................................................................................................6 1.7 在编辑器里编写代码...................................................................................................8 1.8 五颜六色的代码...........................................................................................................9 1.9 帮助我们的提示信息...................................................................................................9 第 2 章 Python 编程初体验——发号施令 ....................................................... 11 2.1 什么是编程 .................................................................................................................11 2.2 给小海龟精确地发号施令 ........................................................................................12 2.2.1 指挥海龟画正方形.....................................................................................12 2.2.2 指挥海龟画八边形.....................................................................................14 2.3 省力气的循环............................................................................................................16 2.4 旋转的正方形............................................................................................................17 2.5 创造酷炫的图案........................................................................................................19 2.6 给点颜色看看............................................................................................................21 2.7 总结及课后练习........................................................................................................22 第 3 章 跟机器交流 ........................................................................................ 23 3.1 和计算机对话............................................................................................................23 3.2 输入和输出 .................................................................................................................28 3.3 跟人对话——注释...................................................................................................28 3.4 案例:笑话制造机....................................................................................................29 3.5 总结及课后练习........................................................................................................30 第 4 章 数据的世界 ........................................................................................ 32 4.1 变量.............................................................................................................................32 4.1.1 为什么要用变量 ..........................................................................................33 4.1.2 变量名..........................................................................................................33 4.1.3 变量有多可“变”.....................................................................................34 4.2 算法通过处理数据解决问题...................................................................................36 4.3 Python 数据类型及转换函数.................................................................................36 4.3.1 常见数据类型..............................................................................................36 4.3.2 数据类型转换函数.....................................................................................37 4.3.3 数据分类的好处 ..........................................................................................38 4.4 数字.............................................................................................................................38 4.4.1 探索运算符..................................................................................................38 4.4.2 案例 1:输出三位数中的每位数字.........................................................41 4.5 字符串.........................................................................................................................42 4.5.1 字符串常见处理 ..........................................................................................43 4.5.2 案例 2:国家名简写..................................................................................45 4.5.3 案例 3:城市名加密..................................................................................47 4.6 布尔值.........................................................................................................................48 4.6.1 布尔值及底层的意义.................................................................................48 4.6.2 比较数据......................................................................................................49 4.6.3 布尔值与逻辑运算符的故事——小熊选照片.......................................50 4.6.4 逻辑运算符..................................................................................................51 4.6.5 案例 4:卡片通关挑战..............................................................................52 4.7 总结及课后练习........................................................................................................57 第 5 章 好好安排数据 .................................................................................... 58 5.1 安排数据的方式........................................................................................................58 5.2 列表.............................................................................................................................59 5.2.1 获取列表值..................................................................................................60 5.2.2 修改列表......................................................................................................62 5.2.3 二维列表......................................................................................................64 5.2.4 列表挑战练习..............................................................................................66 5.3 元组.............................................................................................................................67 5.4 字典.............................................................................................................................68 5.4.1 什么是字典..................................................................................................68 5.4.2 使用字典......................................................................................................69 5.4.3 案例:查询课程表.....................................................................................70 5.4.4 字典挑战练习..............................................................................................72 5.5 总结及课后练习........................................................................................................72 第 6 章 条件判断——学会做决定 ................................................................... 74 6.1 条件判断.....................................................................................................................74 6.1.1 生活中的判断..............................................................................................74 6.1.2 程序中的判断..............................................................................................74 6.2 if…else…语句..........................................................................................................75 6.2.1 案例 1:你的成绩合格吗 ..........................................................................76 6.2.2 代码的位置..................................................................................................77 6.2.3 案例 2:奇偶数判断..................................................................................78 6.3 if…语句......................................................................................................................79 案例 3:今天你戴口罩了吗...................................................................................79 6.4 if…elif…else…语句................................................................................................80 案例 4:判断正数、负数和零...............................................................................81 6.5 条件判断总结............................................................................................................83 6.5.1 红绿灯导航系统 ..........................................................................................84 6.5.2 案例 5:闰年计算器..................................................................................84 6.6 条件判断应用............................................................................................................86 6.6.1 案例 6:趣味掷骰子..................................................................................86 6.6.2 案例 7:心理测验......................................................................................87 6.6.3 案例 8:聊天机器人..................................................................................91 6.7 总结及课后练习........................................................................................................97 第 7 章 循环——让计算机重复工作 ............................................................. 100 7.1 流程控制...................................................................................................................100 7.2 什么是循环 ...............................................................................................................101 7.3 for 循环....................................................................................................................101 7.3.1 重复打印任务............................................................................................101 7.3.2 案例 1:敌军还有 5 秒到达战场...........................................................102 7.3.3 for 循环语法.............................................................................................105 7.3.4 案例 2:乘法口诀表................................................................................105 7.3.5 range()函数..............................................................................................107 7.3.6 for 循环练习.............................................................................................109 7.4 案例 3:奶昔机器人 ...............................................................................................112 7.5 while 循环 ................................................................................................................113 7.5.1 while 循环的意义.....................................................................................113 7.5.2 比较 while 和 if........................................................................................114 7.5.3 while 循环语法 .........................................................................................115 7.5.4 案例 4:加血道具的回血 ........................................................................115 7.5.5 无限循环和 break 语句..........................................................................117 7.6 案例 5:扫地机器人的故事..................................................................................119 7.7 案例 6:自动驾驶程序的故事..............................................................................121 7.8 案例 7:猜数字游戏 ...............................................................................................123 7.9 总结及课后练习......................................................................................................127 第 8 章 抽象函数——分而治之的学问 ......................................................... 128 8.1 分而治之和抽象......................................................................................................128 8.2 函数...........................................................................................................................131 8.2.1 定义并调用函数 ........................................................................................132 8.2.2 函数中代码的注意事项...........................................................................132 8.2.3 带参数的函数............................................................................................133 8.2.4 案例 1:简单的函数练习 ........................................................................136 8.2.5 做事情的函数 VS 返回值的函数 ............................................................137 8.3 案例 2:数学试卷机器人......................................................................................140 8.3.1 策划数学试卷机器人...............................................................................140 8.3.2 随机模块的用法 ........................................................................................141 8.3.3 题目的函数................................................................................................141 8.3.4 策划程序逻辑............................................................................................144 8.3.5 完整的程序代码 ........................................................................................145 8.4 递归函数的故事......................................................................................................146 8.4.1 阶乘与递归................................................................................................146 8.4.2 无限递归....................................................................................................147 8.4.3 案例 3:科赫曲线....................................................................................148 8.4.4 案例 4:科赫雪花....................................................................................149 8.5 变量的作用域..........................................................................................................150 8.6 总结及课后练习......................................................................................................151 第 9 章 Python 库——让强大的 Python 库帮忙 ........................................... 153 9.1 Python 模块概述 ....................................................................................................153 9.2 安装、卸载和使用 Python 模块 ..........................................................................154 9.2.1 安装与卸载 Python 模块.......................................................................154 9.2.2 Python 文档.............................................................................................157 9.3 random 模块..........................................................................................................159 9.3.1 随机模块常见函数...................................................................................159 9.3.2 随机模块函数练习...................................................................................160 9.3.3 案例 1:幸运大抽奖................................................................................161 9.4 时间模块和日期时间模块 ......................................................................................163 9.4.1 时间模块....................................................................................................163 9.4.2 日期时间模块............................................................................................166 9.5 webbrowser 模块..................................................................................................167 9.5.1 webbrowser 简介...................................................................................167 9.5.2 案例 2:天气机器人................................................................................167 9.6 操作文件...................................................................................................................169 9.6.1 操作系统的 os 模块.................................................................................169 9.6.2 案例 3:音乐倒计时................................................................................171 9.6.3 案例 4:编写文档的 docx 模块............................................................172 9.7 总结及课后练习......................................................................................................174 第 10 章 Tkinter 界面——有按钮的软件 ...................................................... 175 10.1 GUI 与 CUI............................................................................................................175 10.2 介绍 Tkinter 框架................................................................................................176 10.3 给窗体添加控件....................................................................................................177 10.4 让控件变漂亮........................................................................................................179 10.4.1 为控件设置属性的方法.........................................................................179 10.4.2 控件的常用属性.....................................................................................180 10.4.3 使用 config 配置属性...........................................................................182 10.5 让窗体里的东西动起来.......................................................................................183 10.5.1 Tkinter 里的事件...................................................................................184 10.5.2 响应事件中的属性.................................................................................185 10.6 案例 1:绘图软件................................................................................................187 10.6.1 制作绘图软件 1......................................................................................188 10.6.2 制作绘图软件 2......................................................................................192 10.6.3 制作绘图软件 3......................................................................................194 10.7 案例 2:编写桌面备忘录....................................................................................197 10.8 总结及课后练习....................................................................................................198 第 11 章 密码的奥妙——众目睽睽之下的悄悄话 ......................................... 199 11.1 打胜仗要靠算法....................................................................................................199 11.2 案例 1:倒着说话——调转密码.......................................................................200 11.2.1 调转密码介绍.........................................................................................200 11.2.2 编写调转密码.........................................................................................200 11.2.3 编写调转密码窗口.................................................................................201 11.3 案例 2:绕小弯说话——凯撒密码...................................................................202 11.3.1 凯撒密码介绍.........................................................................................202 11.3.2 编写凯撒密码.........................................................................................203 11.3.3 编写凯撒密码窗口.................................................................................206 11.3.4 破解凯撒密码.........................................................................................207 11.4 案例 3:混乱着说话——打乱替换密码...........................................................207 11.4.1 打乱替换密码介绍.................................................................................207 11.4.2 编写打乱替换密码.................................................................................208 11.5 案例 4:绕大弯说话——维吉尼亚密码..........................................................210 11.5.1 维吉尼亚密码介绍.................................................................................210 11.5.2 编写维吉尼亚密码.................................................................................211 11.6 案例 5:靠计数破译密码....................................................................................212 11.7 总结及课后练习....................................................................................................215 第 12 章 二进制数的世界 ............................................................................. 217 12.1 二进制数是什么....................................................................................................217 12.2 二进制数转十进制数...........................................................................................218 12.3 十进制数转二进制数...........................................................................................220 12.4 图片都是数字........................................................................................................221 12.5 字母都是数字........................................................................................................222 12.6 总结及课后练习....................................................................................................224 第 13 章 潜水钟与蝴蝶——用计算性思维解决问题 ...................................... 225 13.1 潜水钟与蝴蝶的故事...........................................................................................225 13.1.1 第一次尝试——眨眼次数代表的字母................................................226 13.1.2 第二次尝试——二分搜索....................................................................226 13.1.3 持续地尝试 ..............................................................................................228 13.2 编写程序为身边的人解决问题...........................................................................229