本书是一本帮助青少年学习Python编程的入门图书。书中介绍了58个趣味编程小案例,带领读者掌握Python语言的基础语法,并通过动手实践,让读者初步体验项目案例的开发过程。本书按照从基础到进阶、从简单到复杂的顺序安排案例,阅读梯度比较平滑。书中的案例不仅涉及Python的语法知识,而且还涉及如何导入Python的第三方库。另外,为了达到更好的学习效果,本书特意提供了约300分钟配套教学视频。
本书共39章,分为两篇。篇“Python编程基础案例”,包括求解鸡兔同笼问题、打印九九乘法表、用冒泡法给成绩排序、做个万年历、做个简易通讯录、续写斐波那契数列、解汉诺塔问题等案例。第2篇“Python编程进阶案例”,包括制作用按钮操作的计算器、制作Q版单位换算小工具、绘制动漫人物、制作轻量级画图板、绘制小猪佩奇、制作桌面动态时钟和数显时钟、绘制二维图表和三维图表、制作益智五子棋游戏等案例。
本书行文诙谐幽默,案例丰富、实用性强,特别适合作为青少年的Python编程入门读物,也适合作为想要探索Python语言奥秘的其他爱好者的兴趣读物。另外,本书还很好适合作为中小学编程教育课的教材。
蒋子阳,多年专业编程工作经验,曾参与多个机器人目标识别与定位等深度学习相关项目,擅长图像识别算法、语音识别算法等,涉及行业包括金融、证券、汽车、公共安全等领域。近年来,作者对机器学习及深度学习进行了深入研究,随着Tensorflow的出现,开始将精力转移到TensorFlow深度学习算法原理的研究中,并专门推导过其中的大部分算法,对TensorFlow框架有着独特的认识和深入的理解。
前言
篇 Python编程基础案例
章 使用Python打印简单内容
1.1 初识Python的IDLE
1.2 在IDLE中打印“Python真好玩!”
1.3 创建及保存Python文件
第2章 小小的Python计算器
2.1 从加减乘除入手:写计算表达式
2.2 保存输入的数字:变量
2.3 小小的Python计算器成品
2.4 课后小练习
第3章 巧用数字解谜题——阴影面积
3.1 问题描述:阴影面积是多少
3.2 使用更精确的π:导入math模块
3.3 计算结果的近似处理:浮点数的精度控制
3.4 课后小练习
第4章 巧用数字解谜题——对折细绳
4.1 问题描述:对折并剪断细绳
4.2 表示每次剪断后的结果:初识分数
4.3 得到任意剪断n次后的结果
4.4 课后小练习
第5章 巧用数字解谜题——鸡兔同笼
5.1 问题描述:鸡兔各几只
5.2 合理的逻辑控制:循环结构和判断结构
5.3 鸡兔同笼问题再升级
5.4 课后小练习
第6章 趣味数字游戏
6.1 奇数、偶数各几何:while和for的较量
6.2 质数、合数有哪些:break语句和嵌套的循环
6.3 课后小练习
第7章 循环和判断的魅力——背乘法表
7.1 回忆九九乘法表
7.2 用最熟悉的办法:for循环结构嵌套
7.3 换一种办法:别样的while循环结构
7.4 课后小练习
第8章 循环和判断的魅力——成绩排序
8.1 厘清思路:排序过程当如何
8.2 最直接的办法:用for循环完成冒泡排序
8.3 换一种办法:用while循环完成冒泡排序
8.4 课后小练习
第9章 挖掘列表的潜能——别样索引
9.1 最末位的成绩:从后向前的索引顺序
9.2 前(后)一段的成绩:用索引截取列表
9.3 特定区间的成绩:列表分片
0章 挖掘列表的潜能——常规修改
10.1 给grade追加新成绩:增加列表成员
10.2 去掉grade中的成绩:删除列表成员
10.3 调整grade中的成绩:给列表成员排序
1章 给排序小工具添加实用功能1
11.1 输入学号和成绩:input()函数和split()函数
11.2 保存学号和成绩:append()函数
11.3 把学号与成绩保存在一起:zip()函数和元组
2章 给排序小工具添加实用功能2
12.1 按学号查成绩:使用字典
12.2 又见冒泡排序:列表的二维索引
12.3 大功告成
12.4 课后小练习
3章 例说元组的使用
13.1 创建新的元组
13.2 对元组使用索引
13.3 获取成员的索引
13.4 对元组成员计数
4章 例说字典的使用
14.1 创建新的字典
14.2 获取字典中的成员
14.3 增/改字典中的成员
14.4 删除字典中的成员
5章 几个循环中的小技巧
15.1 range()函数的另类用法
15.2 zip()函数与map()函数
15.3 陌生的enumerate()函数
6章 函数,原来你是这样的
16.1 从定义一个函数着手:def语句
16.2 调用函数要留心:多个种类的参数
16.3 小试牛刀:把成绩排序写进函数里
16.4 课后小练习
7章 灵活的函数——做个万年历
17.1 闰年还是平年:函数的返回值
17.2 这个月有几天
17.3 距离1900年的天已经过去了多久
17.4 终于完成万年历
8章 灵活的函数——做个简易通讯录
18.1 通讯录总览:初识SQLite数据库
18.2 完成通讯录的菜单和新建联系人的功能
18.3 完成查询联系人信息的功能
18.4 完成修改联系人信息的功能
18.5 完成删除联系人的功能
18.6 完成显示全部联系人信息的功能
18.7 把所有的功能拼装起来
9章 灵活的函数——写斐波那契数列
19.1 探索斐波那契数列之谜
19.2 续写斐波那契数列:函数的递归调用
19.3 课后小练习
第20章 灵活的函数——解汉诺塔问题
20.1 从最简单的情况入手
20.2 由简入繁,摸清圆盘的挪动规律
20.3 用Python玩转汉诺塔:又见递归函数
20.4 课后小练习
第21章 揭开类的神秘面纱
21.1 从一个汽车类开始:定义一个类
21.2 让类代替字典:创建类的实例
21.3 为什么说类是面向对象的
21.4 课后小练习
第22章 面向对象的类——升级通讯录
22.1 升级开始:定义一个Contact类
22.2 添加展示操作菜单的类方法
22.3 添加新建/查询联系人的类方法
22.4 添加修改/删除联系人的类方法
22.5 添加显示所有联系人的类方法
22.6 添加程序的执行入口
22.7 课后小练习
第23章 面向对象的类——发纸牌比大小游戏
23.1 从一张牌开始:定义Card类
23.2 负责洗牌和发牌:定义Deck类
23.3 有两名玩家:定义Player类
23.4 开始游戏:定义Game类
23.5 试玩扑克牌游戏
第24章