thon数据类型简介34
2.4.1 六种基本数据类型简介34
2.4.2 数据类型的判断35
2.4.3 容器、序列、迭代、可迭代对象36
2.4.4 布尔值37
第3章 数字和数学并不可怕——数据类型之数字
3.1 数字虽多,不过三类39
3.1.1 整数39
3.1.2 浮点数41
3.1.3 复数41
3.1.4 eval()函数与exec()函数42
3.1.5 进制与进制转换43
3.2 小学数学都学过——运算符与表达式44
3.2.1 算数运算符45
3.2.2 比较运算符46
3.2.3 赋值运算符47
3.2.4 逻辑运算符48
3.2.5 各种运算符的混合使用与优先级48
3.3 再也不用怕数学了:数学函数与math模块49
3.3.1 数学函数49
3.3.2 math模块50
3.3.3 random模块53
3.3.4 案例:做一个机选彩票的程序54
第4章 字符串也是一种“串儿”——数据类型之字符串
4.1 字符串是一种什么串儿?55
4.1.1 字符串的三种形式55
4.1.2 字符串的索引58
4.1.3 字符串的判断59
4.1.4 转义字符与原始字符串60
4.2 字符串的N种“食用方法”62
4.2.1 字符串的切片62
4.2.2 字符串的运算64
4.2.3 处理字符串的有关函数67
4.2.4 字符串的有关方法68
4.2.5 字符串的格式化输出71
4.3 正则表达式71
4.3.1 正则表达式基础72
4.3.2 正则表达式的应用73
4.3.3 re模块75
4.3.4 案例:验证手机号是否合法77
第5章 让程序更听话——流程控制与if分支
5.1 送你一根指挥棒:流程控制简介78
5.2 随机应变:if分支80
5.2.1 if分支的几种结构80
5.2.2 if结构的嵌套84
5.2.3 多个if与多个elif的区别86
5.2.4 pass语句87
第6章 一句顶一万句——循环
6.1 初学编程我写了一万行代码,后来我学会了用循环90
6.1.1 for循环结构90
6.1.2 range()函数92
6.1.3 break与continue93
6.1.4 使用for循环遍历列表和字典94
6.1.5 for循环嵌套94
6.2 更“聪明”的while循环95
6.2.1 while循环结构95
6.2.2 while循环与else配合使用97
6.2.3 在while循环中使用break98
6.2.4 在while循环中使用continue 98
6.2.5 小心死循环99
6.2.6 while循环嵌套100
6.2.7 用while循环实现一个猜数字游戏101
6.2.8 while循环和for循环混合使用102
6.2.9 while循环与for循环之比较103
第7章 我们也是有组织的——列表、元组、集合、字典
7.1 列车就是一列车,列表就是一列表104
7.1.1 创建列表104
7.1.2 列表的索引105
7.1.3 列表的切片105
7.1.4 列表的遍历106
7.1.5 列表元素的修改、插入与删除106
7.1.6 列表的复制107
7.1.7 列表元素的判断108
7.1.8 列表的嵌套109
7.1.9 二维列表的遍历110
7.1.10 列表的运算110
7.1.11 操作列表的有关函数111
7.1.12 列表的有关方法112
7.1.13 列表解析式与生成器表达式114
7.2 比列表“顽固”的元组115
7.2.1 元组的创建116
7.2.2 元组的索引、切片、删除、复制、遍历116
7.2.3 元组的运算与判断117
7.2.4 操作元组的有关函数118
7.2.5 元组的有关方法119
7.2.6 二维元组120
7.3 字典,就像你用过的字典120
7.3.1 字典的创建121
7.3.2 字典元素的访问121
7.3.3 字典元素的修改、添加与删除122
7.3.4 字典的遍历123
7.3.5 字典的嵌套与二维字典124
7.3.6 操作字典的有关函数125
7.3.7 字典的有关方法126
7.3.8 深复制与浅复制127
7.3.9 用字典实现多重分支128
7.4 集合:搞搞关系129
7.4.1 集合的创建129
7.4.2 集合的遍历、判断与删除129
7.4.3 集合的关系判断和运算130
7.4.4 操作集合的有关函数131
7.4.5 集合的有关方法132
第8章 掌握核心科技——函数与模块
8.1 自制工具:自定义函数135
8.1.1 函数的定义与调用135
8.1.2 形参、实参、位置参数、关键字参数136
8.1.3 参数的默认值137
8.1.4 传递多个参数138
8.1.5 传递列表或字典作为参数139
8.1.6 函数的返回值140
8.1.7 用函数实现一个猜数字游戏140
8.1.8 变量的作用域141
8.1.9 函数的嵌套142
8.1.10 递归函数143
8.1.11 匿名函数:lambda表达式145
8.1.12 高阶函数:map()、filter()145
8.1.13 闭包146
8.1.14 装饰器147
8.2 工具箱:模块149
8.2.1 将自定义函数存储为模块149
8.2.2 模块的导入与使用150
8.2.3 if__name__=="__main__":152
第9章 单身狗的渴望——面向对象编程
9.1 物以类聚,人以群分154
9.1.1 创建一个类154
9.1.2 实例化一个对象156
9.1.3 访问、修改类和对象的属性与方法157
9.1.4 封装:私有属性和私有方法159
9.1.5 继承:祖传秘方161
9.1.6 多继承与多重继承163
9.1.7 多态:各自表述165
9.1.8 将类存储为模块166
9.1.9 类模块的使用167
9.2 模块、包、库,傻傻分不清楚?167
9.2.1 包的创建与使用167
9.2.2 模块、包、库的区别168
9.2.3 Python标准库169
9.3 给各种包找个管家:pip169
9.3.1 pip的使用环境169
9.3.2 包的安装与升级170
9.3.3 包的查询与卸载171
第10章 让鼠标休息一会儿——文件操作
10.1 文件读写173
10.1.1 文件的打开、读取与关闭173
10.1.2 文件的逐行读取与部分读取174
10.1.3 查看指针位置与修改指针位置176
10.1.4 写入文件内容177
10.2 os模块178
10.2.1 目录操作179
10.2.2 文件操作180
10.2.3 Linux系统下的权限操作183
10.3 shutil模块183
第11章 让我们一起囤积数据吧——数据库操作
11.1 数据库187
11.1.1 数据库简介187
11.1.2 SQL语句简介189
11.1.3 DB-API简介191
11.2 Python操作SQLite数据库194
11.2.1 sqlite3模块的使用194
11.2.2 数据表的创建、改名与数据的添加195
11.2.3 数据的查询、修改与删除197
11.2.4 查看表信息与删除表199
11.3 Python操作MySQL数据库202
11.3.1 下载安装MySQL202
11.3.2 使用mysql.connector模块操作MySQL数据库211
第12章 人非圣贤,孰能无过——错误与异常处理
12.1 错误与异常215
12.1.1 错误与常见错误215
12.1.2 异常类218
12.2 异常处理220
12.2.1 异常的获取与处理221
12.2.2 使用raise语句自主抛出异常223
12.2.3 使用自定义异常类224
第13章 是骡子是马拉出来遛遛——调试与测试
13.1 调试226
13.1.1 简单的调试方法226
13.1.2 IDLE自带调试工具的使用228
13.2 测试233
13.2.1 单元测试与测试用例233
13.2.2 unittest模块的使用234
第14章 程序也要面子——GUI编程
14.1 GUI简介237
14.2 Python内置GUI模块:Tkinter238
14.2.1 使用Tkinter模块创建一个界面程序238
14.2.2 窗口、控件、事件、事件处理函数239
14.2.3 控件布局方式248
14.3 案例:图形版猜数字游戏255
第15章 人多力量大——并发编程
15.1 进程与线程257
15.1.1 并发与并行257
15.1.2 多进程与多线程258
15.1.3 同步、异步、阻塞、非阻塞259
15.2 多进程的使用260
15.2.1 创建和调用子进程261
15.2.2 通过继承Process类来创建多个进程263
15.2.3 通过进程池Pool来创建多进程263
15.2.4 进程间通信265
15.3 多线程的使用266
15.3.1 使用treading模块创建多线程266
15.3.2 通过实例化Thread类来创建线程267
15.3.3 线程池267
15.3.4 线程间通信268
15.3.5 线程安全269
第16章 三天打鱼天天上网——网络编程
16.1 网络基础270
16.1.1 网络的硬件基础270
16.1.2 网络模型271
16.1.3 网络协议272
16.1.4 域名、DNS、URL273
16.1.5 客户端与服务器274
16.1.6 Socket与socket模块274
16.2 Web入门276
16.2.1 超文本与超链接276
16.2.2 超文本标记语言:HTML277
16.2.3 HTTP请求280
16.3 网络模块:urllib281
16.3.1 request模块281
16.3.2 error模块283
16.3.3 parse模块284
16.3.4 robotparser模块285
第17章 实战项目一:让Python当你的工作助手
17.1 批量处理图片287
17.1.1 pillow库简介287
17.1.2 案例:批量调整图片大小290
17.2 读写Word文档293
17.2.1 python-docx库简介293
17.2.2 文档写入操作294
17.2.3 文档合并操作297
17.3 处理Excel299
17.3.1 openpyxl库299
17.3.2 操作Excel表格300
第18章 实战项目二:这个虫子有点牛——网络爬虫开发
18.1 网络爬虫简介303
18.1.1 网络爬虫基本原理303
18.1.2 网络爬虫的“规矩”——Robots协议304
18.2 requests库305
18.2.1 requests库的常用方法306
18.2.2 用requests库爬取一个简单网页307
18.3实战:爬取百度图片310
第19章 实战项目三:你的游戏你做主——小游戏开发
19.1 Pygame库318
19.1.1 Pygame库简介318
19.1.2 Display模块321
19.1.3 Surface模块322
19.1.4 图形对象的常用方法326
19.2 案例:制作一个贪吃蛇游戏327
第20章 实战项目四:确认过眼神,我遇见对的人——AI人脸识别
20.1 人工智能简介334
20.2 开放平台与API接口336
20.3 案例:一个人脸识别与打分项目——Python看脸340
20.3.1 AccessToken340
20.3.2 Base64编码341
20.3.3 json数据格式344
20.3.4 案例:Python看脸345
第21章 工欲善其事,换个IDE?——PyCharm
21.1 PyCharm349
21.1.1 PyCharm下载与安装349
21.1.2 第一次使用PyCharm354
21.2 用PyCharm写一个聊天程序363