本书适合学习Python3的入门读者,也适用对编程一无所知,但渴望用编程改变世界的朋友们!本书提倡理解为主,应用为王。因此,只要有可能,小甲鱼(作者)都会通过生动的实例来让大家理解概念。
虽然这是一本入门书籍,但本书的“野心”可并不止于“初级水平”的教学。本书前半部分是基础的语法特性讲解,后半部分围绕着Python3在爬虫、Tkinter和游戏开发等实例上的应用。
编程知识深似海,小甲鱼没办法仅通过一本书将所有的知识都灌输给你,但能够做到的是培养你对编程的兴趣,提高你编写代码的水平,以及锻炼你的自学能力。最后,本书贯彻的核心理念是: 实用、好玩,还有参与。
第1章就这么愉快地开始吧
1.1获得Python
1.2从IDLE启动Python
1.3失败的尝试
1.4尝试点儿新的东西
1.5为什么会这样
第2章用Python设计第一个游戏
2.1第一个小游戏
2.2缩进
2.3BIF
第3章成为高手前必须知道的一些基础知识
3.1变量
3.2字符串
3.3原始字符串
3.4长字符串
3.5改进我们的小游戏
3.6条件分支
3.7while循环
3.8引入外援
3.9闲聊数据类型
3.9.1整型
3.9.2浮点型
3.9.3布尔类型
3.9.4类型转换
3.9.5获得关于类型的信息
3.10常用操作符
3.10.1算术操作符
3.10.2优先级问题
3.10.3比较操作符
3.10.4逻辑操作符
第4章了不起的分支和循环
4.1分支和循环
4.2课堂小练习
4.3结果分析
4.4Python可以有效避免“悬挂else”
4.5条件表达式(三元操作符)
4.6断言
4.7while循环语句
4.8for循环语句
4.9range()
4.10break语句
4.11continue语句
第5章列表、元组和字符串
5.1列表: 一个“打了激素”的数组
5.1.1创建列表
5.1.2向列表添加元素
5.1.3从列表中获取元素
5.1.4从列表删除元素
5.1.5列表分片
5.1.6列表分片的进阶玩法
5.1.7一些常用操作符
5.1.8列表的小伙伴们
5.1.9关于分片“拷贝”概念的补充
5.2元组: 戴上了枷锁的列表
5.2.1创建和访问一个元组
5.2.2更新和删除元组
5.3字符串
5.3.1各种内置方法
5.3.2格式化
5.4序列
第6章函数
6.1Python的乐高积木
6.1.1创建和调用函数
6.1.2函数的参数
6.1.3函数的返回值
6.2灵活即强大
6.2.1形参和实参
6.2.2函数文档
6.2.3关键字参数
6.2.4默认参数
6.2.5收集参数
6.3我的地盘听我的
6.3.1函数和过程
6.3.2再谈谈返回值
6.3.3函数变量的作用域
6.4内嵌函数和闭包
6.4.1global关键字
6.4.2内嵌函数
6.4.3闭包(closure)
6.5lambda表达式
6.6递归
6.6.1递归是“神马”
6.6.2写一个求阶乘的函数
6.6.3这帮小兔崽子
6.6.4汉诺塔
第7章字典和集合
7.1字典: 当索引不好用时
7.1.1创建和访问字典
7.1.2各种内置方法
7.2集合: 在我的世界里,你就是唯一
7.2.1创建集合
7.2.2访问集合
7.2.3不可变集合
第8章永久存储
8.1文件: 因为懂你,所以永恒
8.1.1打开文件
8.1.2文件对象的方法
8.1.3文件的关闭
8.1.4文件的读取和定位
8.1.5文件的写入
8.1.6一个任务
8.2文件系统: 介绍一个高大上的东西
8.3pickle: 腌制一缸美味的泡菜
第9章异常处理
9.1你不可能总是对的
9.2tryexcept语句
9.2.1针对不同异常设置多个except
9.2.2对多个异常统一处理
9.2.3捕获所有异常
9.3tryfinally语句
9.4raise语句
9.5丰富的else语句
9.6简洁的with语句
第10章图形用户界面入门
10.1导入EasyGui
10.2使用EasyGui
10.3修改默认设置
第11章类和对象
11.1给大家介绍对象
11.2对象=属性+方法
11.3面向对象编程
11.3.1self是什么
11.3.2你听说过Python的魔法方法吗
11.3.3公有和私有
11.4继承
11.4.1调用未绑定的父类方法
11.4.2使用super函数
11.5多重继承
11.6组合
11.7类、类对象和实例对象
11.8到底什么是绑定
11.9一些相关的BIF
第12章魔法方法
12.1构造和析构
12.1.1__init__(self[, ...])
12.1.2__new__(cls[, ...])
12.1.3__del__(self)
12.2算术运算
12.2.1算术操作符
12.2.2反运算
12.2.3增量赋值运算
12.2.4一元操作符
12.3简单定制
12.4属性访问
12.5描述符(property的原理)
12.6定制序列
12.7迭代器
12.8生成器(乱入)
第13章模块
13.1模块就是程序
13.2命名空间
13.3导入模块
13.4__name__='__main__'
13.5搜索路径
13.6包
13.7像个极客一样去思考
第14章论一只爬虫的自我修养
14.1入门
14.2实战
14.2.1下载一只猫
14.2.2翻译文本
14.3隐藏
14.3.1修改UserAgent
14.3.2延迟提交数据
14.3.3使用代理
14.4Beautiful Soup
14.5正则表达式
14.5.1re模块
14.5.2通配符
14.5.3反斜杠
14.5.4字符类
14.5.5重复匹配
14.5.6特殊符号及用法
14.5.7元字符
14.5.8贪婪和非贪婪
14.5.9反斜杠+普通字母=特殊含义
14.5.10编译正则表达式
14.5.11编译标志
14.5.12实用的方法
14.6异常处理
14.6.1URLError
14.6.2HTTPError
14.6.3处理异常
14.7安装Scrapy
14.8Scrapy爬虫之初窥门径
14.8.1Scrapy框架
14.8.2创建一个Scrapy项目
14.8.3定义Item容器
14.8.4编写爬虫
14.8.5爬
14.8.6取
14.8.7在Shell中尝试Selector选择器
14.8.8使用XPath
14.8.9提取数据
14.8.10使用item
14.8.11存储内容
第15章GUI的最终选择: Tkinter
15.1Tkinter之初体验
15.2Label组件
15.3Button组件
15.4Checkbutton组件
15.5Radiobutton组件
15.6LabelFrame组件
15.7Entry组件
15.8Listbox组件
15.9Scrollbar组件
15.10Scale组件
15.11Text组件
15.11.1Indexes用法
15.11.2Marks用法
15.11.3Tags用法
15.12Canvas组件
15.13Menu组件
15.14Menubutton组件
15.15OptionMenu组件
15.16Message组件
15.17Spinbox组件
15.18PanedWindow组件
15.19Toplevel组件
15.20事件绑定
15.21事件序列
15.21.1type
15.21.2modifier
15.22Event对象
15.23布局管理器
15.23.1pack
15.23.2grid
15.23.3place
15.24标准对话框
15.24.1messagebox(消息对话框)
15.24.2filedialog(文件对话框)
15.24.3colorchooser(颜色选择对话框)
第16章Pygame: 游戏开发
16.1安装Pygame
16.2初步尝试
16.3解惑
16.3.1什么是Surface对象
16.3.2将一个图像绘制到另一个图像上是怎么一回事
16.3.3移动图像是怎么一回事
16.3.4如何控制游戏的速度
16.3.5Pygame的效率高不高
16.3.6我应该从哪里获得帮助
16.4事件
16.5提高游戏的颜值
16.5.1显示模式
16.5.2全屏才是王道
16.5.3使窗口尺寸可变
16.5.4图像的变换
16.5.5裁剪图像
16.5.6转换图片
16.5.7透明度分析
16.6绘制基本图形
16.6.1绘制矩形
16.6.2绘制多边形
16.6.3绘制圆形
16.6.4绘制椭圆形
16.6.5绘制弧线
16.6.6绘制线段
16.7动画精灵
16.7.1创建精灵
16.7.2移动精灵
16.8碰撞检测
16.8.1尝试自己写碰撞检测函数
16.8.2sprite模块提供的碰撞检测函数
16.8.3实现完美碰撞检测
16.9播放声音和音效
16.10响应鼠标
16.10.1设置鼠标的位置
16.10.2自定义鼠标光标
16.10.3让小球响应光标的移动频率
16.11响应键盘
16.12结束游戏
16.12.1发生碰撞后获得随机速度
16.12.2减少“抖动”现象的发生
16.12.3游戏胜利
16.12.4更好地结束游戏
16.13经典飞机大战
16.13.1游戏设定
16.13.2主模块
16.13.3我方飞机
16.13.4响应键盘
16.13.5飞行效果
16.13.6敌方飞机
16.13.7提升敌机速度
16.13.8碰撞检测
16.13.9完美碰撞检测
16.13.10一个BUG
16.13.11发射子弹
16.13.12设置敌机“血槽”
16.13.13中弹效果
16.13.14绘制得分
16.13.15暂停游戏
16.13.16控制难度
16.13.17全屏炸弹
16.13.18发放补给包
16.13.19超级子弹
16.13.20三次机会
16.13.21结束画面
参考文献