第1章 绪论 1
1.1 Python的特点 1
1.1.1 为何适应各种用户需求 2
1.1.2 胶水特点 2
1.1.3 语言特点 2
1.1.4 语法风格 3
1.1.5 多平台 5
1.1.6 丰富的支持 5
1.2 Python版本与集成包 5
1.3 Python的下载与安装 6
1.3.1 下载Python 6
1.3.2 Python在Windows下的安装 6
1.3.3 Anaconda 8
1.4 python的IDE 9
1.4.1 IDLE 9
1.4.2 PyCharm 9
1.4.3 Spyder 10
1.4.4 其他IDE 11
1.5 软件包的安装方法 11
1.5.1 easy_install 12
1.5.2 pip 12
1.6 高级话题:Matplotlib 13
1.6.1 Matplotlib特点 13
1.6.2 Matplotlib绘图 13
1.6.3 用Matplotlib绘制股票历史K线图 15
1.7 小结 17
第2章 数据类型 18
2.1 数字数据类型 18
2.1.1 布尔型bool 19
2.1.2 基本整型int 20
2.1.3 长整型 20
2.1.4 双精度浮点型float 21
2.1.5 十进制浮点型Decimal 21
2.1.6 复数Complex 22
2.1.7 算术运算符 23
2.1.8 数字类型函数 24
2.2 序列 26
2.2.1 字符串 28
2.2.2 列表 39
2.2.3 元组 45
2.3 字典 48
2.3.1 字典创建 48
2.3.2 字典访问 49
2.3.3 字典相关函数 51
2.4 高级话题:NumPy 54
2.4.1 NumPy数组与Python列表的区别 54
2.4.2 NumPy数据类型 55
2.5 小结 57
第3章 控制流程与运算 58
3.1 选择结构 58
3.1.1 单分支结构 58
3.1.2 双分支结构 59
3.1.3 多分支结构 60
3.1.4 条件表达式 62
3.2 循环结构 62
3.2.1 while语句 62
3.2.2 for语句 65
3.3 高级话题:NumPy的数组操作 70
3.3.1 创建数组 70
3.3.2 索引和切片 71
3.3.3 数组对象的属性 72
3.3.4 数组和标量之间的运算 73
3.3.5 数组的转置 74
3.3.6 通用函数 74
3.3.7 统计方法 75
3.3.8 集合运算 76
3.3.9 随机数 76
3.3.10 排序 77
3.3.11 线性代数 78
3.3.12 访问文件 78
3.4 小结 79
第4章 函数与函数式编程 80
4.1 函数 80
4.1.1 定义函数 80
4.1.2 函数调用 82
4.1.3 内部/内嵌函数 82
4.2 函数参数 83
4.2.1 标准化参数 83
4.2.2 可变数量的参数 86
4.2.3 函数传递 89
4.3 装饰器 90
4.3.1 无参数装饰器 90
4.3.2 带参数装饰器 93
4.4 函数式编程 94
4.4.1 lambda表达式 94
4.4.2 内建函数map、filter、reduce 96
4.4.3 偏函数应用 98
4.5 变量作用域 99
4.5.1 全局变量和局部变量 99
4.5.2 global语句 100
4.5.3 闭包与外部作用域 101
4.6 递归 102
4.7 生成器 102
4.8 高级话题:Scipy 104
4.8.1 傅里叶变换 105
4.8.2 滤波 107
4.9 小结 109
第5章 文件 110
5.1 磁盘文件 110
5.1.1 打开、关闭磁盘文件 110
5.1.2 写文件 112
5.1.3 读文件 114
5.1.4 文件指针操作 116
5.2 StringIO类文件 116
5.3 文件系统操作 120
5.3.1 os模块 120
5.3.2 os.path模块 124
5.3.3 shutil模块 127
5.4 高级话题:Python读写Excel文件 130
5.4.1 xlwt库 130
5.4.2 xlrd库 133
5.4.3 xlutils库 134
5.4 小结 135
第6章 模块与包 136
6.1 模块 136
6.1.1 搜索路径 136
6.1.2 导入模块 137
6.1.3 导入指定的模块属性 137
6.1.4 加载模块 138
6.1.5 名称空间 138
6.1.6 “编译的”Python文件 139
6.1.7 自动导入模块 139
6.1.8 循环导入 139
6.2 包 141
6.3 高级话题:程序打包 142
6.3.1 Distutils 142
6.3.2 py2exe 144
6.4 小结 144
第7章 类 145
7.1 基本概念 145
7.2 类定义 146
7.3 实例 148
7.3.1 创建实例 148
7.3.2 初始化 149
7.3.3 dict属性 151
7.3.4 特殊方法 152
7.4 继承 155
7.5 多态 158
7.6 可见性 159
7.7 python类中的属性 160
7.8 高级话题:抽象基类 163
7.9 小结 166
第8章 数据库 167
8.1 DB-API2.0 167
8.2 Psycopg2 170
8.3 MySQL 173
8.4 高级话题:ORM 175
8.5 小结 178
第9章 网络编程 179
9.1 网络基础 179
9.2 CGI 182
9.2.1 CGI模块 182
9.2.2 WSGI 183
9.3 高级话题:Flask 184
9.3.1 Flask简介 184
9.3.2 Flask-SQLAlchemy 185
9.3.3 Flask-WTF 186
9.3.4 Jinja2 187
9.3.5 用Matplotlib与Flask显示动态图片 189
9.3.6 Flask-Scnpt 190
9.3.7 Flask程序运行 191
9.4 小结 192
第10章 正则表达式 193
10.1 Python的正则表达式语法 193
10.2 re模块 195
10.2.1 Python正则表达式用法 195
10.2.2 编译一个模式 197
10.2.3 模式替换 197
10.3 高级话题:Beautiful Soup 198
10.4 小结 202
第11章 图形用户界面编程 203
11.1 Tkinter 203
11.1.1 Tkinter组件 203
11.1.2 Tkinter回调、绑定 206
11.1.3 Matplotlib应用于Tkinter 208
11.2 高级话题:PyQt 210
11.2.1 PyQt介绍 210
11.2.2 PyQt的事件 214
11.2.3 PyQt的ToDo实例 215
11.3 小结 219
第12章 大数据的利器 220
12.1 JSON 220
12.1.1 JSON格式定义 220
12.1.2 simplejson库 221
12.1.3 通过JSON读取汇率 226
12.2 XML 227
12.2.1 XML基本定义 227
12.2.2 LXML库使用 228
12.2.3 通过XML读取新浪和人民网的RSS 229
12.3 HDF5 229
12.3.1 HDF5格式定义 229
12.3.2 PyTables使用 230
12.4 pandas 232
12.4.1 pandas介绍 232
12.4.2 pandas的Series 232
12.4.3 DataFrame的创建 234
14.4.4 DataFrame的索引访问 235
12.4.5 DataFrame的数据赋值 239
12.4.6 DataFrame的基本运算 239
12.4.7 pandas的IO操作 240
12.4.8 pandas读取EIA的原油价格 241
12.5 小结 243
附录 244
附录A Python编译安装 244
附录B virtualenv Python虚拟环境 246
附录C Python 2还是Python 3 248
附录D 科学家的Python 252
附录E 无处不在的Python 253