本书共五个部分。第一部分(前10章)为基础篇,介绍Python概述、语言基础、分支和循环控制、序列(列表、元组、集合、字典)、数组和矩阵、字符串和正则表达式、函数和模块、面向对象编程、文件操作和异常处理等内容。第二部分(后10章)为应用篇,介绍二维图表、三维图像、声频、视频;Python操作的数据库介绍MySQL、PostgreSQL、SQL Server、Oracle、SQLite、MongoDB等内容均完成了应用实例;Office组件介绍Word、Excel和PowerPoint的内容,并有综合应用实例;介绍在C++中如何使用Python,以及在Python中如何使用C++。第三部分为实验。第四部分为习题。第五部分为附录,提供Python调试及其实例。本书将命令和编程结合,编程和常用算法结合,学习和应用结合;配套教程、习题、实验等,并各有侧重、相互配合;提供配套教学视频,介绍和分析Python实例,可更好地理解Python及其应用。同时,通过网络配套提供所有实例源程序(.py)及其工程、数据库文件、教学课件,以方便教学和学生模仿。本书既可作为大学本科和高职高专院校有关课程教材,也可作为Python学习、培训讲义。
郑阿奇,南京师范大学计算机科学与技术学院,副教授,东南大学本科,曾任计算机软件系主任,获选南京师范大学教学名师培养人选。主编5套计算机系列教材,获教育部优秀教材二等奖、电子部优秀教材二等奖、两次获江苏省优秀教学成果二等奖、江苏省畅销图书编辑二等奖、全国高校出版社优秀畅销书二等奖、两次获南京师范大学优秀教学成果一等奖、南京师范大学精品教材一等奖。参加主持国家八六三计划子项目、江苏省科技开发项目,主持南京市科技开发项目、泰州市科委项目、金陵石化公司项目,获江苏省优秀软件奖,江苏省科技进步奖、南京市创新成果奖。获国家发明专利和实用新型专利20多个。
目  录
 
第一部分  基  础  篇
 
第1章  Python,掀起你的盖头来	1
1.1  Python简介	1
1.2  安装Python及其扩展库	2
1.2.1  安装Python	2
1.2.2  Python集成开发环境—IDLE	5
1.3  PyCharm开发环境的安装和设置	5
1.3.1  PyCharm的安装	6
1.3.2  PyCharm程序设计环境	9
1.3.3  一个简单的程序实例	11
1.4  扩展库的安装和使用	13
1.4.1  扩展库的安装	13
1.4.2  扩展库的导入和使用	15
1.4.3  编程环境同步	16
1.5  Python说明	16
1.5.1  程序语法规则	16
1.5.2  Python语言的执行	19
1.5.3  name属性的作用	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.1  if语句的三种形式	35
3.1.2  if语句的嵌套	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  列表:list	46
4.1.1  创建列表	46
4.1.2  索引和切片	47
4.1.3  列表的基本操作	48
4.1.4  列表方法	49
4.1.5  列表推导式	52
4.2  元组:tuple	54
4.2.1  元组的基本操作	54
4.2.2  生成器推导式	55
4.3  集合:set	56
4.3.1  集合的创建与访问	56
4.3.2  集合的基本操作符	57
4.4  字典:dict	59
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.3  array模块数据库基本概念	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  正则表达式模块re	95
6.4.3  match对象和正则表达式子
模式	98
6.4.4  综合应用实例	98
第7章  代码重用和共享:函数和模块	100
7.1  Python程序结构	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.6  lambda表达式	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
第10章  野马不会脱缰:异常处理	137
10.1  异常的产生	137
10.2  内置异常类	137
10.3  异常处理结构	138
10.4  抛出异常	142
10.5  自定义异常	143
10.6  断言语句	143
 
第二部分  应  用  篇
 
第11章  拿起一支笔画来画去:二维图表
实例	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
第12章  为什么这么快:数值处理及实例	156
12.1  数组的创建	156
12.1.1  NumPy数组函数	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.3  ufunc函数	165
12.3.1  内置ufunc函数	165
12.3.2  自定义ufunc函数:提取任
意范围素数	166
12.3.3  ufunc函数的性能	167
12.4  综合应用实例:斐波那契法计算
黄金分割数	169
12.4.1  背景知识	169
12.4.2  算法设计	170
12.4.3  编程实现	172
第13章  进入立体世界:三维可视化实例	176
13.1  3D绘图入门:绘制圆柱体	176
13.1.1  基本概念	176
13.1.2  绘图流程	177
13.1.3  VTK绘制圆柱体	179
13.1.4  TVTK绘制圆柱体	180
13.2  TVTK绘图进阶	182
13.2.1  流水线浏览器:改变圆柱
外观	182
13.2.2  多实体场景:绘制多种几
何体	185
13.3  使用第三方模具:文件载入
“胡巴”	187
13.3.1  背景知识	187
13.3.2  程序实现	188
13.3.3  控制照相机	190
第14章  精彩纷呈:可视化科学计算实例	192
14.1  SciPy科学计算功能	192
14.1.1  数据拟合	192
14.1.2  插值优化	193
14.1.3  信号处理	194
14.2  Mayavi可视化应用	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
第15章  流行数据库世界:操作实例	208
15.1  基本原理	208
15.1.1  Python访问数据库原理	208
15.1.2  数据库操作的一般步骤	210
15.2  Python操作MySQL	213
15.2.1  环境安装	214
15.2.2  程序及分析	215
15.3  Python操作SQLite	217
15.3.1  SQLite简介	217
15.3.2  程序及分析	217
15.4  Python操作MongoDB	219
15.4.1  环境安装	219
15.4.2  程序及分析	221
15.5  Python操作PostgreSQL	223
15.5.1  环境安装	223
15.5.2  程序及分析	225
15.6  Python操作其他数据库	228
15.6.1  Python操作SQL Server	228
15.6.2  Python操作Oracle	230
第16章  窗口从何而来:界面设计实例	234
16.1  界面编程入门	234
16.1.1  编程的一般步骤	234
16.1.2  第一个Tkinter程序	235
16.1.3  界面的事件响应	236
16.2  窗体基本控件	237
16.2.1  Tkinter控件概述	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.1  Qt简介及功能展示	250
16.4.2  用Qt设计图形界面	252
16.4.3  Qt界面向Python转化	256
16.4.4  Python添加功能逻辑	257
16.5  Tkinter界面呈现MatPlotLib图表	260
第17章  网络爬虫,爬来爬去实例	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.3  Python内置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
第18章  到Office晃一晃:操作Excel/Word/
PowerPoint实例	279
18.1  Python操作Excel	279
18.1.1  基本操作	279
18.1.2  单元格操作与计算:统计
高考录取人数与录取率	280
18.2  Python操作Word	282
18.2.1  环境安装	282
18.2.2  基本读/写	283
18.2.3  载入文档表格:读取历年
高考统计信息	284
18.2.4  输出文档表格:2013—2017
年高考信息统计表	286
18.3  Python操作PowerPoint	287
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
第19章  图像可以这样变化:图像处理实例	298
19.1  Python图片基本处理	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.2  Python音频处理模块	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.1  Python视频模块	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.4  Python与C++互操作	336
20.4.1  C++调用Python模块功能	337
20.4.2  Python使用C++的DLL库	341
 
第三部分  实    验
 
实验1	345
实验2	346
实验3	346
实验4	347
实验5	348
实验6	349
实验7	350
实验8	351
实验9	352
实验10	353
实验11	353
实验12	354
实验13	355
实验14	357
实验15	358
实验16	359
实验17	360
实验18	361
实验19	362
实验20	362
 
第四部分  习    题
 
习题1	364
习题2	365
习题3	366
习题4	367
习题5	368
习题6	369
习题7	370
习题8	371
习题9	372
习题10	373
习题11	374
习题12	375
习题13	376
习题14	377
习题15	378
习题16	379
习题17	380
习题18	381
习题19	382
习题20	384
 
第五部分  附    录
 
附录A  磨刀不误砍材工—Pycharm环境调试
Python程序	385
A.1  Python程序语法错误标识	385
A.2  Python程序调试基本方法	387
A.3  Python实例程序运行调试	387