本书共五个部分。第一部分(前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