部分基础篇
章Python,掀起你的盖头来1
1.1Python简介1
1.2安装Python及其扩展库2
1.2.1安装Python2
1.2.2Python集成开发环境―IDLE5
1.3PyCharm开发环境的安装和设置5
1.3.1PyCharm的安装6
1.3.2PyCharm程序设计环境9
1.3.3一个简单的程序实例11
1.4扩展库的安装和使用13
1.4.1扩展库的安装13
1.4.2扩展库的导入和使用15
1.4.3编程环境同步16
1.5Python说明16
1.5.1程序语法规则16
1.5.2Python语言的执行19
1.5.3name属性的作用19
第2章Python虽神,语言基础并不特别20
2.1数据类型20
2.1.1数值20
2.1.2字符串与字节串22
2.1.3数据类型转换23
2.1.4类型变量25
2.2运算符与表达式26
2.2.1算术运算符及其表达式26
2.2.2关系运算符及其表达式27
2.2.3位运算符及其表达式27
2.2.4逻辑运算符及其表达式28
2.2.5字符串基本运算及其表达式29
2.2.6赋值运算符30
2.2.7与同性判断运算符31
2.3基本输入和输出31
2.3.1输出到屏幕31
2.3.2键盘输入33
2.4综合应用实例34
第3章这样就能控制:分支和循环35
3.1选择结构35
3.1.1if语句的三种形式35
3.1.2if语句的嵌套38
3.2循环结构38
3.2.1循环语句38
3.2.2循环控制语句40
3.2.3循环嵌套41
3.3范围和迭代器42
3.3.1范围42
3.3.2迭代器43
3.4综合应用举例43
第4章序列是什么:列元字集46
4.1列表:list46
4.1.1创建列表46
4.1.2索引和切片47
4.1.3列表的基本操作48
4.1.4列表方法49
4.1.5列表推导式52
4.2元组:tuple54
4.2.1元组的基本操作54
4.2.2生成器推导式55
4.3集合:set56
4.3.1集合的创建与访问56
4.3.2集合的基本操作符57
4.4字典:dict59
4.4.1字典的基本操作符59
4.4.2字典方法60
4.5序列62
4.5.1序列间的转换62
4.5.2常用内置函数64
4.6综合应用实例67
第5章又是数组,又是矩阵70
5.1数组70
5.1.1创建数组70
5.1.2元素的增加、查询、修改、删除71
5.1.3分割切片73
5.1.4运算73
5.1.5条件函数74
5.2矩阵75
5.2.1创建矩阵75
5.2.2常用的矩阵运算76
5.2.3常用的矩阵求值77
5.2.4矩阵的分隔和合并78
5.2.5矩阵和数组79
5.3array模块数据库基本概念80
第6章虽是字符串,还要正则表达式83
6.1基本说明83
6.1.1字符串编码83
6.1.2转义字符84
6.1.3字符串常量85
6.2字符串格式化86
6.2.1用%符号进行格式化86
6.2.2用format()方法格式化87
6.2.3格式化的字符串常量88
6.2.4用template模板格式化89
6.3字符串常用操作89
6.3.1字符串创建和访问89
6.3.2字符串操作和判断91
6.3.3字符串排版和切片93
6.3.4综合应用实例93
6.4正则表达式94
6.4.1正则表达式元字符94
6.4.2正则表达式模块re95
6.4.3match对象和正则表达式子模式98
6.4.4综合应用实例98
第7章代码重用和共享:函数和模块100
7.1Python程序结构100
7.2用户编写函数101
7.2.1函数定义与调用101
7.2.2函数嵌套定义102
7.2.3修饰器102
7.2.4列表推导式103
7.3参数传递103
7.3.1定长参数104
7.3.2可变长度参数105
7.3.3序列解包105
7.4函数嵌套与递归106
7.5变量作用域107
7.5.1局部变量107
7.5.2全局变量108
7.6lambda表达式108
7.7成器函数设计110
7.8模块111
7.9命名空间112
7.9.1命名空间的分类112
7.9.2命名空间的规则113
7.10包113
7.10.1包介绍114
7.10.2包管理工具114
7.11综合应用实例115
第8章对象需要谈一谈:面向对象编程117
8.1类117
8.1.1基本概念117
8.1.2类的定义与使用118
8.1.3数据成员119
8.1.4方法120
8.1.5属性122
8.1.6动态性123
8.2继承、多态124
8.2.1继承124
8.2.2多重继承125
8.2.3多态126
8.3运算符重载127
第9章信息永久保存:文件操作129
9.1文件及其操作129
9.1.1文件类型129
9.1.2文件的打开和关闭130
9.2文件操作131
9.2.1写入方法131
9.2.2读取操作方法132
9.2.3定位与移动132
9.2.4文件设备133
9.2.5上下文管理语句134
9.3序列化和反序列化134
9.4文件和文件夹的操作135
9.4.1文件操作135
9.4.2目录操作135
0章野马不会脱缰:异常处理137
10.1异常的产生137
10.2内置异常类137
10.3异常处理结构138
10.4抛出异常142
10.5自定义异常143
10.6断言语句143
第二部分应用篇
1章拿起一支笔画来画去:二维图表实例145
11.1单幅图表:绘制螺旋曲线实例145
11.1.1背景知识145
11.1.2实现原理146
11.1.3程序及分析147
11.2绘制多轴图表:展示初等函数实例148
11.2.1背景知识148
11.2.2实现原理149
11.2.3程序及分析150
11.3定制表轴刻度:演示摆线形成实例152
11.3.1背景知识152
11.3.2实现原理153
11.3.3程序及分析153
2章为什么这么快:数值处理及实例156
12.1数组的创建156
12.1.1NumPy数组函数156
12.1.2数组维度设定157
12.1.3函数生成数组158
12.2数组的存取159
12.2.1基本存取方法159
12.2.2多维数组的存取160
12.2.3结构数组的存取:读取修改学生成绩163
12.3ufunc函数165
12.3.1内置ufunc函数165
12.3.2自定义ufunc函数:提取任意范围素数166
12.3.3ufunc函数的性能167
12.4综合应用实例:斐波那契法计算黄金分割数169
12.4.1背景知识169
12.4.2算法设计170
12.4.3编程实现172
3章进入立体世界:三维可视化实例176
13.13D绘图入门:绘制圆柱体176
13.1.1基本概念176
13.1.2绘图流程177
13.1.3VTK绘制圆柱体179
13.1.4TVTK绘制圆柱体180
13.2TVTK绘图进阶182
13.2.1流水线浏览器:改变圆柱外观182
13.2.2多实体场景:绘制多种几何体185
13.3使用第三方模具:文件载入“胡巴”187
13.3.1背景知识187
13.3.2程序实现188
13.3.3控制照相机190
4章精彩纷呈:可视化科学计算实例192
14.1SciPy科学计算功能192
14.1.1数据拟合192
14.1.2插值优化193
14.1.3信号处理194
14.2Mayavi可视化应用195
14.2.1绘制空间曲面:电子衍射图案195
14.2.2复杂三维图形:模拟穿越虫洞198
14.2.3标量场可视化:地月系引力场201
14.3综合应用实例:蝴蝶效应演示203
14.3.1背景知识203
14.3.2实现原理204
14.3.3程序演示204
5章流行数据库世界:操作实例208
15.1基本原理208
15.1.1Python访问数据库原理208
15.1.2数据库操作的一般步骤210
15.2Python操作MySQL213
15.2.1环境安装214
15.2.2程序及分析215
15.3Python操作SQLite217
15.3.1SQLite简介217
15.3.2程序及分析217
15.4Python操作MongoDB219
15.4.1环境安装219
15.4.2程序及分析221
15.5Python操作PostgreSQL223
15.5.1环境安装223
15.5.2程序及分析225
15.6Python操作其他数据库228
15.6.1Python操作SQLServer228
15.6.2Python操作Oracle230
6章窗口从何而来:界面设计实例234
16.1界面编程入门234
16.1.1编程的一般步骤234
16.1.2个Tkinter程序235
16.1.3界面的事件响应236
16.2窗体基本控件237
16.2.1Tkinter控件概述237
16.2.2标签238
16.2.3复选框238
16.2.4单选按钮239
16.2.5标签组框240
16.2.6输入框241
16.2.7列表框与滚动条243
16.3综合应用实例:人员信息管理系统244
16.3.1数据库准备244
16.3.2系统实现245
16.3.3功能演示248
16.4用Qt设计Python程序界面250
16.4.1Qt简介及功能展示250
16.4.2用Qt设计图形界面252
16.4.3Qt界面向Python转化256
16.4.4Python添加功能逻辑257
16.5Tkinter界面呈现MatPlotLib图表260
7章网络爬虫,爬来爬去实例262
17.1爬虫概述262
17.1.1权限及试验用网站262
17.1.2爬虫工作的基本流程263
17.2基于Requests的爬虫266
17.2.1环境安装267
17.2.2程序实现268
17.3Python内置Urllib爬虫库269
17.3.1获取导航栏标题270
17.3.2搜索特定关键词271
17.3.3抓取页面上的图片273
17.4综合应用实例:爬虫获取天气预报275
17.4.1定位资源路径275
17.4.2程序实现277
8章到Office晃一晃:操作Excel/Word/PowerPoint实例279
18.1Python操作Excel279
18.1.1基本操作279
18.1.2单元格操作与计算:统计高考录取人数与录取率280
18.2Python操作Word282
18.2.1环境安装282
18.2.2基本读/写283
18.2.3载入文档表格:读取历年高考统计信息284
18.2.4输出文档表格:2013―2017年高考信息统计表286
18.3Python操作PowerPoint287
18.3.1环境安装287
18.3.2张幻灯片289
18.3.3读取幻灯片中的表格:2013―2017年高考人数和录取率290
18.3.4绘制柱状图表:画出2008―2012年高考报名人数柱状图292
18.4综合应用实例:统计并演示全国高等教育普及率293
18.4.1原始Word数据准备293
18.4.2数据转存Excel计算294
18.4.3输出至PowerPoint演示295
9章图像可以这样变化:图像处理实例298
19.1Python图片基本处理298
19.1.1三种处理方式298
19.1.2模式转换:彩色照片画面作旧300
19.1.3增强与滤波:海底摄影照片美化302
19.2多图合成技术304
19.2.1图像合成的两种方式304
19.2.2插值合成:杂技演员动作合成305
19.2.3通道合成:人鱼美照融入背景306
19.3图像截取与抓拍308
19.3.1图像截取:人物肖像轮廓提取308
19.3.2画面抓拍:艺术体操表演抓拍310
19.4综合应用实例:长白山天池水怪研究313
19.4.1背景知识313
19.4.2处理水怪的影像315
19.4.3观察、研究及结论316
第20章其他也精彩:音频、动画、视频与C++实例318
20.1音频处理:流行歌曲串烧318
20.1.1歌曲介绍318
20.1.2Python音频处理模块319
20.1.3用Python实现歌曲串烧319
20.1.4合成的新曲322
20.2动画制作:阿基米德螺线的生成演示323
20.2.1动画相关组件323
20.2.2程序实现323
20.2.3演示效果324
20.3视频处理:海洋馆潜水员表演视频剪辑324
20.3.1Python视频模块325
20.3.2本例视频处理需求325
20.3.3格式转换326
20.3.4冗余帧采样328
20.3.5必要帧处理330
20.3.6特殊处理331
20.3.7制作片头和片尾333
20.3.8合成作品335
20.4Python与C++互操作336
20.4.1C++调用Python模块功能337
20.4.2Python使用C++的DLL库341
第三部分实验
实验1345
实验2346
实验3346
实验4347
实验5348
实验6349
实验7350
实验8351
实验9352
实验10353
实验11353
实验12354
实验13355
实验14357
实验15358
实验16359
实验17360
实验18361
实验19362
实验20362
第四部分习题
习题1364
习题2365
习题3366
习题4367
习题5368
习题6369
习题7370
习题8371
习题9372
习题10373
习题11374
习题12375
习题13376
习题14377
习题15378
习题16379
习题17380
习题18381
习题19382
习题20384
第五部分附录
附录A磨刀不误砍材工―Pycharm环境调试
Python程序385
A.1Python程序语法错误标识385
A.2Python程序调试基本方法387
A.3Python实例程序运行调试387