目 录 | CONTENTS





第1章  搭建Python开发环境	001
1.1 Python概述	001
1.2 如何选择Python的版本	002
1.3 搭建Python的编程环境	002
1.3.1 在Windows下安装Python	002
1.3.2 在Linux下安装Python	003
1.4 第一行人工智能代码	004
1.5 选择Python开发工具	005
1.5.1 Python自带的IDLE	005
1.5.2 第三方开发工具PyCharm	006
1.6 新手疑难问题解答	007
1.7 实战训练	008
第2章  成为大牛前的必备知识	009
2.1 Python的语法特点	009
2.1.1 代码注释	009
2.1.2 代码缩进	010
2.1.3 编码规范	010
2.1.4 换行问题	011
2.2 标识符与保留字	012
2.3 变量	012
2.4 基本数据类型	014
2.4.1 数字类型	014
2.4.2 字符串类型	016
2.4.3 数据类型的相互转换	017
2.5 运算符和优先级	018
2.5.1 算术运算符	018
2.5.2 比较运算符	019
2.5.3 赋值运算符	019
2.5.4 逻辑运算符	020
2.5.5 位运算符	021
2.5.6 成员运算符	022
2.5.7 身份运算符	022
2.5.8 运算符的优先级	023
2.6 Python的输入和输出	025
2.6.1 input()函数	025
2.6.2 print ()函数	025
2.7 新手疑难问题解答	027
2.8 实战训练	027
第3章  程序的控制结构	029
3.1 程序结构	029
3.2 选择结构与语句	030
3.2.1 最简单的if语句	030
3.2.2 if…else语句	030
3.2.3 if嵌套	032
3.2.4 多重条件判断	032
3.3 布尔表达式	033
3.4 循环控制语句	034
3.4.1 while语句	035
3.4.2 for语句	036
3.4.3 continue语句和else语句	037
3.4.4 pass语句	038
3.5 新手疑难问题解答	038
3.6 实战训练	040
第4章  序列的应用技能	041
4.1 认识序列	041
4.1.1 索引	041
4.1.2 切片	042
4.1.3 序列相加	042
4.1.4 序列相乘	042
4.1.5 检查序列中的成员	042
4.2 集合类型	043
4.2.1 认识集合类型	043
4.2.2 集合类型的常见操作	043
4.3 列表类型	045
4.3.1 认识列表类型	045
4.3.2 列表的常见操作	046
4.3.3 列表的内置函数和方法	046
4.4 元组类型	050
4.4.1 认识元组	050
4.4.2 元组的常用操作	050
4.4.3 元组的内置函数	051
4.5 字典类型	052
4.5.1 认识字典类型	052
4.5.2 字典的常用操作	053
4.5.3 字典的内置函数和方法	053
4.6 新手疑难问题解答	055
4.7 实战训练	056
第5章  字符串与正则表达式	057
5.1 字符串的常用操作	057
5.1.1 拼接字符串	057
5.1.2 计算字符串的长度	058
5.1.3 截取字符串	058
5.1.4 分割和合并字符串	059
5.1.5 检索字符串	060
5.1.6 字母的大小写转换	062
5.1.7 删除字符串中的空格和特殊字符	062
5.1.8 使用Python的转义字符	063
5.2 字符串的编码转换	065
5.3 正则表达式和re模块	066
5.3.1 正则表达式的特定字符	066
5.3.2 re模块的方法	067
5.4 格式化字符串	070
5.5 新手疑难问题解答	071
5.6 实战训练	072
第6章  精通函数	073
6.1 创建和调用函数	073
6.1.1 创建函数	073
6.1.2 调用函数	074
6.2 参数传递	074
6.2.1 形参和实参	074
6.2.2 必需参数	076
6.2.3 关键字参数	077
6.2.4 默认参数	077
6.2.5 可变参数	078
6.3 返回值	079
6.4 变量作用域	080
6.5 匿名函数	081
6.6 新手疑难问题解答	081
6.7 实战训练	082
第7章  面向对象程序设计	084
7.1 认识面向对象	084
7.1.1 什么是对象	084
7.1.2 面向对象的特点	085
7.1.3 什么是类	086
7.2 定义类	086
7.3 类的构造方法和内置属性	086
7.4 类例	088
7.4.1 创建类例	088
7.4.2 类例的内置属性	090
7.5 类的继承	090
7.6 类的多态	093
7.7 类的封装	095
7.8 Python的优势—垃圾回收机制	096
7.9 新手疑难问题解答	097
7.10 实战训练	098
第8章  模块和包	099
8.1 模块概述	099
8.2 自定义模块	099
8.2.1 创建模块	100
8.2.2 使用import语句导入模块	100
8.2.3 模块搜索目录	101
8.3 以主程序的形式执行	104
8.4 Python中的包	105
8.4.1 Python程序的包结构	105
8.4.2 创建包	105
8.4.3 使用包	105
8.5 引用其他模块	106
8.5.1 导入和使用标准模块	107
8.5.2 下载和安装第三方模块	108
8.6 将模块制作成安装包	111
8.7 新手疑难问题解答	112
8.8 实战训练	113
第9章  异常处理和程序调试	115
9.1 异常概述	115
9.2 使用语句处理异常	116
9.2.1 try…except语句	117
9.2.2 try…except…else语句	118
9.2.3 try…except…finally语句	119
9.2.4 使用raise语句抛出异常	119
9.2.5 使用pass语句忽略异常	120
9.3 raise语句的高级应用	121
9.3.1 结束解释器的运行	121
9.3.2 跳出嵌套循环	121
9.4 异常类的例	122
9.5 自定义异常	123
9.6 程序调试	124
9.6.1 使用assert语句调试程序	124
9.6.2 使用IDLE工具进行程序调试	125
9.7 新手疑难问题解答	129
9.8 实战训练	131
第10章  操作文件和目录	132
10.1 打开和关闭文件	132
10.1.1 创建和打开文件	132
10.1.2 关闭文件	134
10.1.3 打开文件时使用with语句	135
10.2 写入和修改文件	135
10.2.1 将字符串写入文件	135
10.2.2 写入多行writelines()	136
10.2.3 修改文件内容	137
10.3 读取文件	138
10.3.1 读取文件read()方法	138
10.3.2 设置文件当前位置seek()方法	138
10.3.3 逐行读取readline()方法	139
10.3.4 读取全部行readlines()方法	139
10.4 目录操作	140
10.4.1 熟悉os和os.path模块	140
10.4.2 路径	141
10.4.3 判断路径是否存在	142
10.4.4 创建目录	143
10.4.5 遍历目录	145
10.4.6 删除目录	145
10.5 文件的高级操作	146
10.5.1 获取文件的基本信息	146
10.5.2 重命名文件	147
10.5.3 删除文件	148
10.5.4 返回文件读取的当前位置	148
10.6 刷新文件	149
10.7 新手疑难问题解答	150
10.8 实战训练	150
第11章  Python操作数据库	152
11.1 操作二进制文件	152
11.2 使用SQLite	153
11.2.1 创建数据库文件	153
11.2.2 插入数据	154
11.2.3 查询数据	155
11.2.4 更新数据	157
11.2.5 删除数据	157
11.3 操作MySQL数据库	158
11.3.1 下载和安装MySQL 8.0	158
11.3.2 安装PyMySQL	166
11.3.3 连接MySQL数据库	167
11.3.4 创建数据表	169
11.3.5 插入数据	169
11.3.6 查询数据	170
11.3.7 更新数据	170
11.3.8 删除数据	171
11.4 新手疑难问题解答	171
11.5 实战训练	172
第12章  GUI编程	174
12.1 使用tkinter创建GUI程序	174
12.2 熟悉tkinter的控件	175
12.3 常用控件的使用方法	179
12.3.1 Button控件	179
12.3.2 Canvas控件	180
12.3.3 Checkbutton控件	184
12.3.4 Entry控件	185
12.3.5 Label控件	186
12.3.6 Listbox控件	187
12.3.7 Menu控件	188
12.3.8 Message控件	192
12.3.9 Radiobutton控件	192
12.3.10 Scale控件	194
12.3.11 Scrollbar控件	196
12.3.12 Text控件	197
12.4 tkinter的事件	199
12.4.1 事件的属性	199
12.4.2 事件绑定方法	200
12.4.3 鼠标事件	200
12.4.4 键盘事件	202
12.4.5 系统协议	203
12.5 布局管理器	204
12.5.1 pack()方法	205
12.5.2 grid()方法	206
12.5.3 place()方法	207
12.6 对话框	208
12.6.1 messagebox模块	208
12.6.2 filedialog模块	210
12.6.3 colorchooser模块	211
12.7 新手疑难问题解答	213
12.8 实战训练	213
第13章  精通Python的高级技术	215
13.1 使用Pillow处理图像	215
13.1.1 加载图像文件	215
13.1.2 图像文件的属性	217
13.1.3 复制与粘贴图像	218
13.1.4 图像的几何转换	220
13.1.5 存储图像文件	221
13.2 语音的处理	221
13.2.1 winsound模块	221
13.2.2 sndhdr模块	223
13.2.3 wave模块	224
13.2.4 aifc模块	226
13.3 科学计算	227
13.3.1 下载和安装numpy模块	227
13.3.2 array对象	228
13.3.3 ufunc对象	229
13.4 线程	230
13.4.1 Python多线程	230
13.4.2 _thread模块	230
13.4.3 threading模块	231
13.5 新手疑难问题解答	232
13.6 实战训练	233
第14章  Web网站编程	234
14.1 XML编程基础	234
14.1.1 XPath简介	234
14.1.2 XSLT简介	235
14.2 XML语法基础	235
14.2.1 XML的基本应用	236
14.2.2 XML文档组成和声明	237
14.2.3 XML元素介绍	238
14.3 Python解析XML	240
14.3.1 使用SAX解析XML	241
14.3.2 使用DOM解析XML	243
14.4 XDR数据交换格式	244
14.5 JSON数据解析	247
14.6 Python解析HTML	249
14.7 新手疑难问题解答	254
14.8 实战训练	254
第15章  Pygame游戏项目——经典飞机大战	258
15.1 安装Pygame	258
15.2 使用Pygame模块	259
15.3 飞机大战游戏分析	262
15.4 封装飞机大战游戏中的类	262
15.4.1 角色类	262
15.4.2 敌机类	264
15.4.3 子弹类	265
15.4.4 按钮类	265
15.5 飞机大战游戏的具体开发步骤	266
15.5.1 绘制界面	266
15.5.2 消息处理事件	267
15.5.3 角色绘制与操控	268
15.5.4 处理声音	270
15.5.5 僚机处理	270
15.5.6 动态显示得分	272
15.5.7 增加敌机	273
15.5.8 射击处理	274
15.5.9 爆炸效果	275
15.5.10 处理游戏分数	276
15.5.11 游戏最终逻辑实现	276
15.6 游戏效果演示	279
第16章  网络爬虫项目——豆瓣图书爬虫和检索	281
16.1 什么是网络爬虫	281
16.2 网络爬虫的常用技术	282
16.2.1 网络请求技术	282
16.2.2 请求headers处理	284
16.2.3 网络超时问题	286
16.2.4 代理服务	286
16.3 豆瓣读书爬虫项目分析	287
16.4 环境配置	287
16.4.1 下载并安装模块文件	287
16.4.2 检查模块文件是否安装成功	290
16.5 具体功能实现	290
16.5.1 爬取图书数据	290
16.5.2 检索图书信息	292
16.6 项目测试	293
第17章  大数据分析项目——绘制电视剧人物关系图	294
17.1 项目分析	294
17.2 配置环境	295
17.3 具体功能实现	297
17.4 项目测试	301
第18章  人工智能项目——自动文本摘要	303
18.1 项目分析	303
18.2 配置环境	304
18.3 具体功能实现	306
18.4 项目测试	310