目 录
第1章 进入Python 3.5的精彩世界 1
1.1 Python的起源 2
1.2 Python的应用场合 3
1.3 从2.7到3.5,Python的新特性 5
1.4 如何学习Python 6
1.5 Python环境构建 7
1.5.1 在Windows系统中安装Python 7
1.5.2 在Linux和UNIX系统中安装Python 14
1.5.3 在Mac OS系统中安装Python 17
1.5.4 其他版本 18
1.6 从hello word开始 18
1.7 调试 19
1.8 问题解答 20
1.9 温故知新,学以致用 21
第2章 开启Python之旅 22
2.1 认识程序 23
2.1.1 程序 23
2.1.2 调试 24
2.1.3 语法错误 24
2.1.4 运行错误 24
2.1.5 语义错误 25
2.2 数据类型 25
2.2.1 整型 25
2.2.2 浮点型 27
2.2.3 复数 28
2.2.4 数据类型转换 28
2.2.5 常量 29
2.3 变量和关键字 29
2.3.1 变量 29
2.3.2 变量名称 33
2.4 语句 34
2.5 表达式 35
2.6 运算符和操作对象 36
2.6.1 什么是运算符和操作对象 36
2.6.2 算术运算符 36
2.6.3 比较运算符 38
2.6.4 赋值运算符 39
2.6.5 位运算符 40
2.6.6 逻辑运算符 41
2.6.7 成员运算符 42
2.6.8 身份运算符 43
2.6.9 运算符优先级 43
2.7 字符串操作 45
2.8 注释 49
2.9 调试 50
2.10 问题解答 50
2.11 温故知新,学以致用 51
第3章 列表和元组 52
3.1 通用序列操作 53
3.1.1 索引 53
3.1.2 分片 54
3.1.3 序列相加 57
3.1.4 乘法 58
3.1.5 成员资格 59
3.1.6 长度、最小值和最大值 60
3.2 列表 60
3.2.1 更新列表 61
3.2.2 嵌套列表 65
3.2.3 列表方法 65
3.3 元组 74
3.3.1 tuple函数 75
3.3.2 元组的基本操作 75
3.3.3 元组内置函数 76
3.4 列表与元组的区别 77
3.5 调试 78
3.6 问题解答 79
3.7 温故知新,学以致用 79
第4章 字符串 81
4.1 字符串的基本操作 82
4.2 字符串格式化 83
4.2.1 字符串格式化符号 83
4.2.2 字符串格式化元组 85
4.3 字符串方法 87
4.3.1 find()方法 87
4.3.2 join()方法 88
4.3.3 lower()方法 89
4.3.4 upper()方法 90
4.3.5 swapcase()方法 91
4.3.6 replace()方法 91
4.3.7 split()方法 92
4.3.8 strip()方法 92
4.3.9 translate()方法 93
4.4 调试 94
4.5 问题解答 95
4.6 温故知新,学以致用 95
第5章 字典 96
5.1 字典的使用 97
5.2 创建和使用字典 97
5.2.1 dict函数 98
5.2.2 字典的基本操作 98
5.2.3 字典的格式化字符串 100
5.2.4 字典和列表的区别 100
5.3 字典方法 101
5.3.1 clear()方法 101
5.3.2 copy()方法 102
5.3.3 fromkeys()方法 103
5.3.4 get()方法 104
5.3.5 key in dict方法 105
5.3.6 items()方法 105
5.3.7 keys()方法 105
5.3.8 setdefault()方法 106
5.3.9 update()方法 107
5.3.10 values()方法 107
5.4 调试 108
5.5 问题解答 108
5.6 温故知新,学以致用 109
第6章 条件、循环和其他语句 110
6.1 使用文本编辑器 111
6.2 import的使用 113
6.2.1 import语句 113
6.2.2 使用逗号输出 116
6.3 别样的赋值 116
6.3.1 序列解包 116
6.3.2 链式赋值 118
6.3.3 增量赋值 118
6.4 语句块 119
6.5 条件语句 119
6.5.1 布尔变量的作用 120
6.5.2 if语句 121
6.5.3 else子句 122
6.5.4 elif子句 123
6.5.5 嵌套代码块 124
6.5.6 更多操作 124
6.5.7 断言 127
6.6 循环 128
6.6.1 while循环 128
6.6.2 for循环 129
6.6.3 循环遍历字典元素 131
6.6.4 迭代工具 132
6.6.5 跳出循环 134
6.6.6 循环中的else子句 136
6.7 pass语句 137
6.8 牛刀小试——猜字游戏编写 138
6.9 Python程序调试 140
6.10 问题解答 141
6.11 温故知新,学以致用 141
第7章 函数 142
7.1 调用函数 143
7.2 定义函数 145
7.3 函数的参数 147
7.3.1 必须参数 148
7.3.2 关键字参数 149
7.3.3 默认参数 149
7.3.4 可变参数 153
7.3.5 组合参数 155
7.4 执行流程 155
7.5 形参和实参 156
7.6 变量作用域 157
7.6.1 局部变量 157
7.6.2 全局变量 159
7.7 有返回值和无返回值函数 161
7.8 为什么要有函数 163
7.9 返回函数 163
7.10 递归函数 166
7.11 匿名函数 169
7.12 偏函数 171
7.13 牛刀小试——经典排序之快速排序实现 172
7.14 调试 173
7.15 问题解答 174
7.16 温故知新,学以致用 174
第8章 面向对象编程 176
8.1 理解面向对象 177
8.1.1 什么是面向对象编程 177
8.1.2 面向对象术语简介 177
8.2 类的定义与使用 178
8.2.1 类的定义 178
8.2.2 类的使用 178
8.3 深入类 179
8.3.1 类的构造方法 179
8.3.2 类的访问权限 184
8.4 继承 189
8.5 多态 192
8.6 封装 196
8.7 多重继承 197
8.8 获取对象信息 199
8.9 类的专有方法 202
8.10 牛刀小试——出行建议 207
8.11 调试 209
8.12 问题解答 209
8.13 温故知新,学以致用 210
第9章 异常 211
9.1 什么是异常 212
9.2 异常处理 212
9.3 抛出异常 213
9.4 捕捉多个异常 215
9.5 使用一个块捕捉多个异常 216
9.6 捕捉对象 217
9.7 全捕捉 217
9.8 异常中的else 218
9.9 自定义异常 219
9.10 finally子句 220
9.11 异常和函数 222
9.12 bug的由来 223
9.13 温故知新,学以致用 223
第10章 日期和时间 224
10.1 日期和时间 225
10.1.1 时间戳 225
10.1.2 时间格式化符号 225
10.1.3 struct_time元组 226
10.2 time模块 227
10.2.1 time()函数 227
10.2.2 localtime([secs])函数 227
10.2.3 gmtime([secs])函数 228
10.2.4 mktime(t)函数 228
10.2.5 asctime([t])函数 229
10.2.6 ctime([secs])函数 229
10.2.7 sleep(secs)函数 230
10.2.8 clock()函数 230
10.2.9 strftime(format[, t])函数 231
10.2.10 strptime(string[, format])函数 232
10.2.11 三种时间格式转化 232
10.3 datetime模块 232
10.4 日历模块 236
10.5 牛刀小试——时间大杂烩 237
10.6 调试 242
10.7 温故知新,学以致用 242
第11章 正则表达式 244
11.1 认识正则表达式 245
11.2 re模块 247
11.2.1 re.match函数 247
11.2.2 re.search方法 247
11.2.3 re.match与re.search的区别 248
11.3 贪婪模式和非贪婪模式 249
11.4 替换 250
11.5 编译 250
11.6 温故知新,学以致用 251
第12章 文件操作 252
12.1 打开文件 253
12.1.1 文件模式 254
12.1.2 缓冲 255
12.2 基本文件方法 255
12.2.1 读和写 256
12.2.2 读写行 258
12.2.3 关闭文件 260
12.2.4 文件重命名 261
12.2.5 删除文件 262
12.3 对文件内容进行迭代 262
12.3.1 按字节处理 262
12.3.2 按行操作 263
12.3.3 使用fileinput实现懒加载式迭代 264
12.3.4 文件迭代器 264
12.4 StringIO函数 264
12.5 序列化与反序列化 265
12.5.1 一般序列化与反序列化 266
12.5.2 JSON序列化与反序列化 267
12.6 调试 269
12.7 问题解答 269
12.8 温故知新,学以致用 270
第13章 多线程 271
13.1 线程和进程 272
13.1.1 进程 272
13.1.2 线程 272
13.1.3 多线程与多进程 272
13.2 使用线程 273
13.2.1 全局解释器锁 273
13.2.2 退出线程 274
13.2.3 Python的线程模块 274
13.3 _thread模块 274
13.4 threading模块 277
13.5 线程同步 282
13.6 线程优先级队列 284
13.7 线程与进程比较 287
13.7.1 线程切换 287
13.7.2 计算密集型与IO密集型 288
13.7.3 异步IO 288
13.8 调试 289
13.9 问题解答 289
13.10 温故知新,学以致用 290
第14章 发送和接收电子邮件 291
14.1 电子邮件介绍 292
14.2 发送邮件 293
14.2.1 SMTP发送邮件 293
14.2.2 发送HTML格式的邮件 296
14.2.3 发送带附件的邮件 297
14.2.4 发送图片 298
14.2.5 同时支持HTML和Plain格式 300
14.2.6 加密SMTP 301
14.3 POP3接收邮件 302
14.3.1 POP3下载邮件 302
14.3.2 解析邮件 303
14.4 调试 305
14.5 问题解答 305
14.6 温故知新,学以致用 306
第15章 网络编程 307
15.1 网络编程初识 308
15.2 TCP/IP简介 308
15.3 网络设计模块 309
15.3.1 Socket简介 309
15.3.2 socket模块 309
15.3.3 socket对象(内建)方法 311
15.4 TCP编程 312
15.4.1 客户端 312
15.4.2 服务器 315
15.5 UDP编程 319
15.6 urllib模块 322
15.6.1 GET请求 322
15.6.2 POST请求 323
15.7 调试 324
15.8 问题解答 325
15.9 温故知新,学以致用 325
第16章 操作数据库 326
16.1 数据库介绍 327
16.2 Python数据库API 327
16.2.1 全局变量 328
16.2.2 异常 328
16.2.3 连接和游标 329
16.2.4 类型 330
16.3 数据库操作 331
16.3.1 数据库连接 331
16.3.2 创建数据库表 332
16.3.3 数据库插入 333
16.3.4 数据库查询 334
16.3.5 数据库更新 335
16.3.6 数据库删除 337
16.4 事务 338
16.5 调试 339
16.6 问题解答 339
16.7 温故知新,学以致用 340
第17章 项目实战——爬虫 341
17.1 了解爬虫 342
17.2 爬虫的原理 342
17.3 爬虫常用的几种技巧 343
17.3.1 基本方法 343
17.3.2 使用代理服务器 343
17.3.3 cookie处理 344
17.3.4 伪装成浏览器 344
17.3.5 登录 345
17.4 爬虫示例——抓取豆瓣电影Top250影评数据 345
17.4.1 确定URL格式 346
17.4.2 页面抓取 346
17.4.3 提取相关信息 347
17.4.4 写入文件 348
17.4.5 完善代码 348
17.5 本章小结 351
第18章 项目实战——数据分析 352
18.1 数据持久化 353
18.2 模块化 357
18.2.1 数据库操作模块化 357
18.2.2 文件生成模块化 360
18.2.3 邮件发送模块化 361
18.3 数据分析的实现 365
18.4 项目小结 369
附录 370
A.1 数学函数 371
A.2 随机函数 371
A.3 三角函数 371
A.4 Python字符串内建函数 372
A.5 列表方法 373
A.6 字典内置方法 374
A.7 正则表达式模式 374
结束语 376
· · · · · · (
收起)