第1章 基本概念 2
1-1 认识Python 2
1-2 Python的起源 2
1-3 Python语言发展史 3
1-4 Python的应用范围 4
1-5 静态语言与动态语言 4
1-6 跨平台的程序语言 5
1-7 系统的安装与执行 5
1-7-1 在Windows中启动与执行Python 5
1-7-2 在Mac OS中启动与执行Python 5
1-8 文档的建立、存储、执行与打开 6
1-8-1 文档的建立 6
1-8-2 文档的存储 7
1-8-3 文档的执行 7
1-8-4 打开文档 8
1-9 程序注释 8
1-9-1 注释符号# 8
1-9-2 三个单引号或双引号 8
习题 9
第2章 认识变量与基本数学运算 11
2-1 用Python做计算 11
2-2 了解变量 11
2-3 了解程序的意义 12
2-4 了解注释的意义 13
2-5 Python变量与其他程序语言的差异 13
2-6 变量的命名原则 14
2-7 基本数学运算 15
2-7-1 四则运算 15
2-7-2 余数和整除 15
2-7-3 次方 16
2-7-4 Python语言控制运算的优先级 16
2-8 赋值运算符 16
2-9 Python等号的多重指定使用 17
2-10 删除变量 18
2-11 Python的断行 18
2-11-1 一行有多条命令 18
2-11-2 将一条命令分成多行 19
习题 19
第3章 Python的基本数据类型 22
3-1 type()函数 22
3-2 数值数据类型 22
3-2-1 整数与浮点数的运算 23
3-2-2 二进制整数与函数bin() 24
3-2-3 八进制整数 24
3-2-4 十六进制整数 24
3-2-5 强制数据类型的转换 25
3-2-6 数值运算常用的函数 25
3-2-7 eval()函数 26
3-3 布尔值数据类型 27
3-4 字符串数据类型 27
3-4-1 字符串的连接 28
3-4-2 处理多行字符串 29
3-4-3 转义字符 29
3-4-4 强制转换为字符串 30
3-4-5 将字符串转换为整数 30
3-4-6 字符串数据的转换 31
3-4-7 字符串与整数相乘产生字符串复制效果 31
3-4-8 灵活使用字符串加法和换行字符\n 32
3-4-9 字符串前加r 32
习题 32
第4章 基本输入与输出 35
4-1 Python的辅助说明help() 35
4-2 格式化输出数据使用print() 35
4-2-1 函数print()的基本语法 35
4-2-2 格式化print()输出 36
4-2-3 精准控制格式化的输出 38
4-2-4 format()函数 39
4-3 输出数据到文档 40
4-3-1 打开一个文档open() 40
4-3-2 使用print()函数输出数据到文档 41
4-4 数据输入input() 41
4-5 列出所有内建函数dir() 42
习题 43
第5章 程序的流程控制 46
5-1 关系运算符 46
5-2 逻辑运算符 47
5-3 if语句 48
5-4 if…else语句 50
5-5 if…elif…else语句 51
5-6 嵌套的if语句 54
习题 55
第6章 列表 58
6-1 认识列表 58
6-1-1 列表基本定义 58
6-1-2 读取列表元素 59
6-1-3 列表切片 60
6-1-4 列表索引值是-1 61
6-1-5 统计列表最大值max()、最小值min()、总和sum() 62
6-1-6 列表个数len() 62
6-1-7 更改列表元素的内容 63
6-1-8 列表的相加 63
6-1-9 列表乘以一个数字 64
6-1-10 列表元素的加法运算 64
6-1-11 删除列表元素 65
6-1-12 空列表的判断 66
6-1-13 删除列表 67
6-2 Python简单的面向对象概念 67
6-2-1 字符串的方法 67
6-2-2 更改字符串大小写 68
6-2-3 dir()获得系统内部对象的方法 69
6-3 获得列表的方法 70
6-4 增加与删除列表元素 70
6-4-1 在列表末端增加元素append() 70
6-4-2 插入列表元素insert() 71
6-4-3 删除列表元素pop() 72
6-4-4 删除指定的元素remove() 72
6-5 列表的排序 73
6-5-1 颠倒排序reverse() 73
6-5-2 sort()排序 74
6-5-3 sorted()排序 75
6-6 列表操作进阶 76
6-6-1 index() 76
6-6-2 count() 77
6-6-3 列表元素的组合join() 77
6-7 嵌套列表 78
6-7-1 再谈append() 79
6-7-2 extend() 80
6-8 列表的复制 80
6-8-1 列表复制deep copy 80
6-8-2 地址的概念 81
6-8-3 列表的复制shallow copy 82
6-9 再谈字符串 83
6-9-1 字符串的索引 83
6-9-2 字符串切片 83
6-9-3 函数或方法 84
6-9-4 将字符串转成列表 84
6-9-5 切片赋值应用 85
6-9-6 使用split()处理字符串 85
6-9-7 字符串的其他方法 85
6-10 in和not in表达式 86
6-11 is或is not表达式 87
6-11-1 整数变量在内存中的地址 87
6-11-2 将is和is not表达式应用于整数变量 88
6-11-3 将is和is not表达式应用于列表变量 89
6-12 enumerate对象 89
习题 90
第7章 循环设计 96
7-1 基本for循环 96
7-1-1 for循环基本流程 96
7-1-2 单行程序代码区块 97
7-1-3 多行程序代码区块 98
7-1-4 将for循环应用在列表区间元素 98
7-2 range()函数 99
7-2-1 只有一个参数的range()函数 99
7-2-2 有两个参数的range()函数 100
7-2-3 有三个参数的range()函数 101
7-2-4 一般应用 102
7-2-5 进阶列表产生的应用 103
7-3 for循环应用进阶 104
7-3-1 嵌套for循环 104
7-3-2 强制离开for循环——break命令 105
7-3-3 for循环暂时停止不往下执行——continue命令 106
7-3-4 for…else语句 108
7-4 while循环 109
7-4-1 基本while循环 110
7-4-2 嵌套while循环 112
7-4-3 强制离开while循环——break命令 112
7-4-4 while循环暂时停止不往下执行——continue命令 113
7-4-5 while循环条件表达式 114
7-4-6 pass 115
7-5 enumerate对象使用for循环 115
习题 116
第8章 元组 121
8-1 元组的定义 121
8-2 读取元组元素 121
8-3 遍历所有元组元素 122
8-4 修改元组内容产生错误的实例 122
8-5 修改元组元素 123
8-6 元组切片 123
8-7 方法与函数 124
8-8 列表与元组数据互换 125
8-9 其他常用的元组方法 125
8-10 在元组中使用enumerate对象 126
8-11 元组的功能 126
习题 127
第9章 字典 129
9-1 字典的基本操作 129
9-1-1 定义字典 129
9-1-2 列出字典元素的值 130
9-1-3 增加字典元素 130
9-1-4 更改字典元素内容 131
9-1-5 删除字典特定元素 132
9-1-6 删除字典所有元素 132
9-1-7 删除字典 132
9-1-8 建立一个空字典 133
9-1-9 字典的复制 133
9-1-10 取得字典元素数量 134
9-1-11 验证元素是否存在 134
9-1-12 设计字典的可读性技巧 135
9-2 遍历字典 135
9-2-1 遍历字典的键-值 136
9-2-2 遍历字典的键 136
9-2-3 排序与遍历字典 137
9-2-4 遍历字典的值 138
9-3 建立字典列表 139
9-4 字典内含列表元素 140
9-5 字典内含字典 141
9-6 while循环在字典中的应用 142
9-7 字典常用的函数和方法 143
9-7-1 len() 143
9-7-2 fromkeys() 143
9-7-3 get() 144
习题 145
第10章 集合 148
10-1 建立集合 148
10-1-1 使用大括号建立集合 148
10-1-2 使用set()函数定义集合 149
10-1-3 海量数据与集合的应用 150
10-2 集合的操作 151
10-2-1 交集 151
10-2-2 并集 152
10-2-3 差集 153
10-2-4 对称差集 154
10-2-5 等于 155
10-2-6 不等于 155
10-2-7 是成员in 156
10-2-8 不是成员not in 156
习题 156
第11章 函数设计 160
11-1 Python函数基本概念 160
11-1-1 函数的定义 160
11-1-2 没有调用参数也没有返回值的参数 161
11-1-3 在Python Shell中执行函数 162
11-2 函数的参数设计 162
11-2-1 传递一个参数 163
11-2-2 多个参数传递 163
11-2-3 关键词参数:参数名称=值 165
11-2-4 参数默认值的处理 165
11-3 函数返回值 166
11-3-1 返回None 166
11-3-2 简单返回数值数据 167
11-3-3 返回多条数据的应用 168
11-3-4 简单返回字符串数据 169
11-3-5 再谈参数默认值 169
11-3-6 函数返回字典数据 170
11-3-7 将循环应用于建立VIP会员字典 171
11-4 调用函数时参数是列表 172
11-4-1 基本传递列表参数的应用 172
11-4-2 在函数内修改列表的内容 172
11-4-3 使用副本传递列表 174
11-5 传递任意数量的参数 176
11-5-1 传递任意数量的参数 176
11-5-2 设计含有一般参数与任意数量参数的函数 176
11-5-3 设计含有一般参数与任意数量的关键词参数 177
11-6 递归式函数设计 177
11-7 局部变量与全局变量 179
11-7-1 全局变量可以在所有函数中使用 179
11-7-2 局部变量与全局变量使用相同的名称 179
11-7-3 程序设计需注意事项 180
11-8 匿名函数lambda 181
11-8-1 匿名函数lambda的语法 181
11-8-2 匿名函数的使用与filter() 182
11-8-3 匿名函数的使用与map() 184
11-9 pass与函数 184
11-10 type关键词应用于函数 184
习题 185
第12章 类——面向对象的程序设计 185
12-1 类的定义与使用 188
12-1-1 定义类 188
12-1-2 操作类的属性与方法 188
12-1-3 类的构建方法 189
12-1-4 属性初始值的设置 191
12-2 类的访问权限 192
12-2-1 私有属性 192
12-2-2 私有方法 193
12-3 类的继承 194
12-3-1 衍生类继承基类的实例应用 195
12-3-2 如何取得基类的私有属性 195
12-3-3 衍生类与基类有相同名称的属性 196
12-3-4 衍生类与基类有相同名称的方法 196
12-3-5 衍生类引用基类的方法 197
12-3-6 “三代同堂”的类与取得基类的属性super() 198
12-3-7 兄弟类属性的取得 199
12-4 多态 200
12-5 多重继承 202
习题 204
第13章 设计与应用模块 207
13-1 将自定义的函数存储在模块中 207
13-1-1 准备工作 207
13-1-2 建立函数内容的模块 208
13-2 应用自定义函数模块 208
13-2-1 import模块名称 208
13-2-2 导入模块内特定函数 209
13-2-3 导入模块内多个函数 209
13-2-4 导入模块所有函数 209
13-2-5 使用as给函数指定替代名称 210
13-2-6 使用as给模块指定替代名称 210
13-3 将自定义类存储在模块内 211
13-3-1 准备工作 211
13-3-2 建立类内容的模块 212
13-4 应用自定义类模块 212
13-4-1 导入模块的单一类 212
13-4-2 导入模块的多个类 213
13-4-3 导入模块内所有类 213
13-4-4 import模块名称 214
13-4-5 模块内导入另一个模块的类 214
13-5 随机数random模块 215
13-5-1 randint() 215
13-5-2 choice() 217
13-5-3 shuffle() 218
13-5-4 sample() 218
13-6 时间time模块 219
13-6-1 time() 219
13-6-2 sleep() 220
13-6-3 asctime() 220
13-6-4 localtime() 221
13-7 系统sys模块 221
13-7-1 version属性 222
13-7-2 stdin对象 222
13-7-3 stdout对象 223
13-8 日期calendar模块 223
13-8-1 列出某年是否闰年isleap() 223
13-8-2 输出月历month() 223
13-8-3 输出年历calendar() 224
习题 225
第14章 文档的读取与写入 228
14-1 文件夹与文档路径 228
14-1-1 绝对路径与相对路径 228
14-1-2 os模块与os.path模块 228
14-1-3 取得目前工作目录os.getcwd() 229
14-1-4 取得绝对路径os.path.abspath 229
14-1-5 返回特定相对路径os.path.relpath() 229
14-1-6 检查路径方法exist/isabs/isdir/isfile 230
14-1-7 文档与目录的操作mkdir/rmdir/remove/chdir 230
14-1-8 返回文档路径os.path.join() 232
14-1-9 获得特定文档的大小os.path.getsize() 233
14-1-10 获得特定工作目录的内容os.listdir() 233
14-1-11 获得特定工作目录内容glob 234
14-1-12 遍历目录树os.walk() 235
14-2 读取文档 236
14-2-1 读取整个文档read() 237
14-2-2 with关键词 237
14-2-3 逐行读取文档内容 238
14-2-4 逐行读取使用readlines() 239
14-2-5 数据组合 240
14-2-6 字符串的替换 240
14-2-7 数据的查找 241
14-2-8 数据查找函数find() 241
14-2-9 数据查找函数rfind() 242
14-3 写入文档 243
14-3-1 将执行结果写入空的文件内 243
14-3-2 写入数值数据 243
14-3-3 输出多行数据的实例 244
14-3-4 追加文件 245
14-4 shutil模块 245
14-4-1 文档的复制copy() 246
14-4-2 目录的复制copytree() 246
14-4-3 文档的移动move() 246
14-4-4 文件名的更改move() 247
14-4-5 目录的移动move() 247
14-4-6 更改目录名称move() 248
14-4-7 删除包含数据文件的目录rmtree() 248
14-4-8 安全删除文档或目录send2trash() 248
14-5 文件压缩与解压缩zipFile 249
14-5-1 执行文档或目录的压缩 249
14-5-2 读取zip文档 250
14-5-3 解压缩zip文档 250
14-6 剪贴板的应用 251
14-7 综合应用 252
习题 253
第15章 程序排错与异常处理 257
15-1 程序异常 257
15-1-1 一个除数为0的错误 257
15-1-2 撰写异常处理程序try-except 257
15-1-3 try-except-else 259
15-1-4 找不到文档错误FileNotFoundError 259
15-1-5 分析单一文件的字数 260
15-1-6 分析多个文件的字数 261
15-2 设计多组异常处理程序 262
15-2-1 常见的异常对象 262
15-2-2 设计捕捉多个异常 263
15-2-3 使用一个except捕捉多个异常 264
15-2-4 处理异常但是使用Python内建的错误消息 264
15-2-5 捕捉所有异常 265
15-3 抛出异常 266
15-4 记录Traceback字符串 267
15-5 finally语句 269
15-6 程序排错的典故 269
习题 270
第16章 海龟绘图 273
16-1 基本概念与模块安装 273
16-2 绘图初体验 273
16-3 绘图基本练习 274
16-4 控制画笔色彩与线条粗细 277
16-5 绘制圆、弧形或多边形 278
16-5-1 绘制圆或弧形 278
16-5-2 绘制多边形 281
16-6 认识与操作海龟图像 281
16-6-1 隐藏与显示海龟 282
16-6-2 认识所有的海龟游标 283
16-7 填充颜色 283
16-8 颜色动画的设计 285
16-9 绘图窗口的相关知识 286
16-9-1 更改海龟窗口标题与背景颜色 286
16-9-2 取得/更改窗口宽度与高度 287
16-9-3 重设世界坐标 287
16-10 文字的输出 288
习题 289
第17章 用Python处理图像文件 292
17-1 认识Pillow模块的RGBA 292
17-1-1 getrgb() 292
17-1-2 getcolor() 292
17-2 Pillow模块的盒子元组 293
17-3 图像的基本操作 294
17-3-1 打开图像对象 294
17-3-2 图像大小属性 294
17-3-3 取得图像对象文件名 294
17-3-4 取得图像对象的文件格式 295
17-3-5 存储文档 295
17-3-6 屏幕显示图像 295
17-3-7 建立新的图像对象 296
17-4 图像的编辑 297
17-4-1 更改图像大小 297
17-4-2 图像的旋转 297
17-4-3 图像的翻转 299
17-4-4 图像像素的编辑 299
17-5 裁切、复制与图像合成 300
17-5-1 裁切图像 300
17-5-2 复制图像 301
17-5-3 图像合成 301
17-5-4 将裁切图片填满图像区间 302
17-6 图像滤镜 303
17-7 在图像内绘制图案 304
17-7-1 绘制点 304
17-7-2 绘制线条 304
17-7-3 绘制圆或椭圆 305
17-7-4 绘制矩形 305
17-7-5 绘制多边形 305
17-8 在图像内填写文字 306
17-9 建立QR code 307
习题 308
第18章 使用tkinter开发GUI程序 310
18-1 建立窗口 310
18-2 标签Label 311
18-3 窗口组件配置管理员 313
18-3-1 pack()方法 313
18-3-2 grid()方法 315
18-3-3 place()方法 316
18-3-4 窗口组件位置的总结 316
18-4 功能按钮Button 317
18-5 变量类型 318
18-6 文本框Entry 319
18-7 文字区域Text 323
18-8 滚动条Scrollbar 324
18-9 选项按钮Radiobutton 325
18-10 复选框Checkbutton 328
18-11 对话框messagebox 330
18-12 图像PhotoImage 332
18-12-1 图像与标签的应用 333
18-12-2 图像与功能按钮的应用 333
18-13 尺度的控制 334
18-14 菜单设计 336
习题 337
第19章 动画与游戏 340
19-1 绘图功能 340
19-1-1 建立画布 340
19-1-2 绘制线条create_line() 340
19-1-3 绘制矩形create_rectangle() 341
19-1-4 绘制圆弧create_arc() 342
19-1-5 绘制圆或椭圆create_oval() 343
19-1-6 绘制多边形create_polygon() 343
19-1-7 输出文字create_text() 344
19-1-8 更改画布背景颜色 344
19-2 尺度控制画布背景颜色 345
19-3 动画设计 346
19-3-1 基本动画 346
19-3-2 多个球移动的设计 347
19-3-3 将随机数应用于多个球体的移动 347
19-3-4 消息绑定 348
19-4 反弹球游戏设计 349
19-4-1 设计球往下移动 349
19-4-2 设计让球上下反弹 351
19-4-3 设计让球在画布四面反弹 352
19-4-4 建立球拍 352
19-4-5 设计球拍移动 353
19-4-6 球拍与球碰撞的处理 354
19-4-7 完整的游戏 356
习题 358
第20章 数据图表的设计 360
20-1 绘制简单的折线图 360
20-1-1 显示绘制的图形show() 360
20-1-2 画线plot() 360
20-1-3 线条宽度linewidth 361
20-1-4 标题的显示 362
20-1-5 坐标轴刻度的设置 363
20-1-6 修改图表的起始值 363
20-1-7 多组数据的应用 364
20-1-8 线条色彩与样式 365
20-1-9 刻度设计 367
20-1-10 图例legend() 369
20-1-11 保存图表 372
20-2 绘制散点图 372
20-2-1 基本散点图的绘制 372
20-2-2 绘制系列点 373
20-2-3 设置绘图区间 374
20-3 Numpy模块 375
20-3-1 建立一个简单的数组linspace()和arange() 375
20-3-2 绘制波形 376
20-3-3 建立不等宽度的散点图 377
20-4 随机数的应用 377
20-4-1 一个简单的应用 378
20-4-2 随机数的移动 378
20-4-3 隐藏坐标 379
20-5 绘制多个图表 380
20-5-1 一个程序有多个图表 380
20-5-2 含有子图的图表 381
20-6 直方图的制作 383
20-7 圆饼图的制作 385
20-8 图表显示中文 386
习题 387
附录A 安装Python 390
A-1 Windows操作系统中安装Python 390
A-2 Mac OS操作系统中安装Python 392
附录B 安装第三方模块 395
B-1 pip工具 395
B-1-1 Windows系统Python 3.7 安装在C盘 395
B-1-2 Python 3.7 安装在硬盘更深层 395
B-2 启动DOS与安装模块 396
B-2-1 DOS环境 396
B-2-2 DOS命令提示符 396
B-3 导入模块安装更新版模块 397
B-4 安装更新版模块 397