第1章 初识Python语言 1
1.1 初识Python 2
1.2 Python 2/Python3 3
1.3 Python全栈的兴起 4
1.4 安装Python 3 6
1.4.1 在Windows下安装Python 3 6
1.4.2 在CentOS下安装Python 3 12
1.5 搭建Python 3开发环境 14
1.5.1 使用PyCharm新建项目 15
1.5.2 配置PyCharm 17
第2章 Python基础篇 20
2.1 变量 21
2.2 标准数据类型 22
2.2.1 数字(Number) 22
2.2.2 字符串(String) 24
2.2.3 列表(List) 28
2.2.4 元组(Tuple) 31
2.2.5 字典(Dictionary) 33
2.2.6 集合(Set) 35
2.3 标识符 36
2.4 行和缩进 37
2.5 运算符和表达式 37
2.5.1 算数运算符 38
2.5.2 比较运算符 38
2.5.3 逻辑运算符 39
2.5.4 成员运算符 40
2.6 条件控制 41
2.7 循环语句 42
2.7.1 while循环 42
2.7.2 for语句 43
2.7.3 使用枚举遍历序列 44
2.8 函数 44
2.8.1 函数的定义和调用 45
2.8.2 函数中的文档 46
2.8.3 默认参数 47
2.8.4 不定长参数 47
2.8.5 range()函数 48
2.8.6 函数作为参数传递 50
2.9 文件 51
2.9.1 操作文件 51
2.9.2 使用with语句 56
2.9.3 电子表格 57
2.10 面向对象 59
2.10.1 类与对象的定义 59
2.10.2 私有属性和方法 61
2.10.3 继承 63
2.10.4 静态方法 67
2.10.5 魔法方法和特殊属性 67
2.10.6 可调用对象 69
2.11 错误和异常 70
2.11.1 错误 70
2.11.2 异常 70
2.11.3 处理异常 72
2.11.4 打印异常信息 73
2.11.5 自定义异常 74
2.12 模块 75
2.12.1 导入模块 75
2.12.2 模块的name属性 76
2.12.3 模块路径 78
2.12.4 包 80
2.13 常用模块 81
2.13.1 os模块 81
2.13.2 time模块 84
第3章 Python高级篇 87
3.1 高级函数对象 88
3.1.1 lambda函数 88
3.1.2 map()函数 89
3.1.3 reduce()函数 90
3.1.4 迭代器(Iterator) 92
3.1.5 生成器(Generator) 95
3.1.6 装饰器(Decorator) 99
3.2 多线程 104
3.2.1 多线程介绍 104
3.2.2 线程模块 104
3.2.3 守护线程 107
3.2.4 优雅地停止线程 109
3.2.5 多线程的锁机制 112
3.2.6 本地线程变量 116
3.3 多进程 117
3.3.1 Linux平台下的多进程 118
3.3.2 跨平台的多进程 120
3.3.3 跨平台的多进程间通信 127
3.3.4 分布式进程 129
3.4 正则表达式 135
3.4.1 re.match函数 137
3.4.2 re.search函数 140
3.4.3 re.findall函数 141
3.5 JSON数据解析 142
3.5.1 JSON简介 142
3.5.2 Python处理JSON数据 144
3.5.3 自定义对象的序列化 146
3.6 存储对象序列化 148
3.6.1 序列化对象 148
3.6.2 反序列化对象 149
3.7 发送E-mail 150
3.7.1 发送简单邮件 152
3.7.2 发送HTML格式的邮件 154
3.7.3 发送带附件的邮件 155
第4章 使用Python操作数据库 158
4.1 操作MySQL数据库 159
4.1.1 MySQL简介 159
4.1.2 在Windows下安装MySQL 160
4.1.3 在Linux下安装MySQL 169
4.1.4 MySQL可视化工具 174
4.1.5 MySQL基础知识 177
4.1.6 Python操作MySQL 182
4.2 操作MongoDB数据库 192
4.2.1 MongoDB简介 192
4.2.2 安装MongoDB 193
4.2.3 MongoDB基本操作 199
4.2.4 MongoDB的集合 200
4.2.5 MongoDB的文档 202
4.2.6 使用Python操作MongoDB 206
4.3 操作Redis数据库 211
4.3.1 Redis简介 211
4.3.2 安装Redis 211
4.3.3 Redis开启远程访问 217
4.3.4 Redis可视化工具 217
4.3.5 Redis数据类型与操作 218
4.3.6 使用Python Redis模块 223
4.3.7 连接Redis服务器 224
4.3.8 操作string类型 225
4.3.9 操作hash类型 229
4.3.10 操作list类型 231
4.3.11 操作set类型 233
4.3.12 操作sorted set类型 235
4.3.13 其他操作 237
第5章 Python网络编程 238
5.1 网络编程的基本概念 239
5.1.1 网络基础知识 239
5.1.2 网络基本概念 240
5.1.3 网络传输协议 245
5.2 Python 3网络编程 248
5.2.1 Socket()函数 248
5.2.2 TCP程序设计 250
5.2.3 UDP程序设计 254
5.2.4 Socket实现文件传输 255
5.2.5 多线程与网络编程 261
第6章 Python自动化运维 264
6.1 自动化运维简介 265
6.2 WebLogic简介 266
6.3 安装WebLogic 266
6.3.1 安装WebLoigc Server 267
6.3.2 配置域(Domain) 271
6.3.3 启动WebLogic Server 276
6.3.4 配置JDK环境变量 278
6.4 WebLogic部署和配置 280
6.4.1 启动WebLogic脚本工具(WLST) 280
6.4.2 通过网页部署Java Web应用 286
6.4.3 通过命令行部署工程 290
6.4.4 通过脚本部署Java Web应用 292
6.4.5 通过网页配置JNDI数据源 297
6.4.6 通过脚本配置JNDI数据源 307
6.5 Python在Linux运维中的常见应用 310
6.5.1 统计磁盘使用情况 311
6.5.2 统计内存使用情况 312
6.5.3 读取passwd文件中的用户名和shell信息 313
6.5.4 统计Linux系统的平均负载 314
6.5.5 查看CPU信息 316
6.5.6 查看MySQL的慢日志(slow-query-log) 319
6.5.7 监控MySQL的状态 321
6.6 psutil的使用 324
6.6.1 获取CPU信息 325
6.6.2 获取内存信息 326
6.6.3 获取磁盘信息 327
第7章 数据分析与可视化 329
7.1 NumPy 330
7.1.1 安装NumPy 330
7.1.2 创建矩阵 331
7.1.3 ndarray对象属性 333
7.1.4 矩阵的截取 334
7.1.5 矩阵的合并 336
7.1.6 通过函数创建矩阵 336
7.1.7 矩阵的运算 339
7.1.8 保存和加载数据 342
7.2 Pandas 345
7.2.1 安装Pandas 345
7.2.2 Series 346
7.2.3 DataFrame 351
7.2.4 常用操作 356
7.2.5 Pandas操作CSV文件 358
7.2.6 SQLAlchemy操作数据库 360
7.3 Matplotlib 363
7.3.1 安装Matplotlib 364
7.3.2 散点图 365
7.3.3 折线图 370
7.3.4 柱状图 374
7.3.5 直方图 379
7.3.6 饼状图 383
7.3.7 Matplotlib常用设置 386
7.3.8 子图subplot 390
7.3.9 多张图像Figure 392
7.3.10 显示网格 394
7.3.11 图例legend 395
7.3.12 坐标轴范围 396
7.3.13 坐标轴刻度 398
7.3.14 调整坐标中日期刻度的显示 398
7.4 金融绘图 400
7.4.1 获得股票数据源 400
7.4.2 显示股票历史数据 401
第8章 Python Web开发框架 406
8.1 Flask简介 407
8.1.1 安装Flask 408
8.1.2 最简单的Web应用 409
8.1.3 路由 411
8.1.4 HTTP方法 414
8.1.5 静态文件 416
8.1.6 模板渲染 416
8.1.7 Request对象 419
8.1.8 Session 424
8.1.9 保存Session到数据库 427
8.2 Flask应用集群 430
8.2.1 分布式Session 431
8.2.2 使用jQuery 432
8.2.3 实验环境 434
8.2.4 配置Redis 435
8.2.5 配置Nginx 435
8.2.6 配置Flask应用集群 439
8.3 ECharts简介 444
8.3.1 ECharts轻松上手 446
8.3.2 Flask与ECharts 450
8.3.3 柱状图 450
8.3.4 折线图 452
8.3.5 饼状图 455
8.3.6 仪表盘 458
8.3.7 可实时刷新的饼状图 460
8.4 案例1:系统监控 463
8.4.1 环境准备 464
8.4.2 存储器 465
8.4.3 监控器 466
8.4.4 路由器 467
8.4.5 页面 468
8.5 案例2:动态显示销量 472
第9章 Python在量化交易中的应用 476
9.1 量化交易介绍 477
9.1.1 量化交易的背景 477
9.1.2 可实现量化交易的市场比较 477
9.1.3 量化交易软件、平台、框架的特点 479
9.1.4 量化交易从哪个市场做起 481
9.1.5 量化交易策略类型 482
9.1.6 CTA策略程序化交易指南 483
9.1.7 量化资源网站介绍 486
9.2 量化交易方案 489
9.2.1 期货量化交易环境介绍 489
9.2.2 CTP量化交易方案介绍 491
9.2.3 行情数据采集 493
9.2.4 期货CTP账户资金曲线监控和绘制 496
9.2.5 Quicklib CTP Python框架 500
9.2.6 QuicklibTrade Python接口 505
9.2.7 量化交易使用资管系统的好处和必要性 519
9.2.8 高频交易 523
9.2.9 算法交易 525
9.2.10 程序化实盘交易需要注意的问题 538
附录 541
附录A使用Postman测试网络请求 542
附录B配置Centos 547