第1章 Python简介与建立开发环境 1
1.1 Python简介 3
1.2 程序设计语言与程序设计 5
1.2.1 程序设计语言简介 6
1.2.2 算法与程序设计 7
1.2.3 流程图 9
1.2.4 程序设计流程简介 10
1.3 Python的应用 11
1.3.1 Web开发框架 11
1.3.2 数字科技集成开发 12
1.4 建立Python开发环境 15
1.4.1 下载Anaconda程序包 16
1.4.2 安装Anaconda 17
1.5 Python编写工具 20
1.5.1 “命令提示符”窗口 20
1.5.2 Spyder编辑器 22
1.5.3 IPython命令窗口 25
1.6 print输出指令 27
1.7 Python程序编写风格 28
1.7.1 编码声明 30
1.7.2 程序注释 32
1.7.3 指令的分行和合并 32
1.8 上机实践演练——Hello World 33
重点回顾 35
课后习题 37
第2章 数据类型、变量与常数 39
2.1 变最命名与赋值 40
2.1.1 变量声明与赋值 40
2.1.2 变量命名规则 41
2.1.3 静态类型与动态类型 43
2.2 Python的数值数据类型 44
2.2.1 整数 44
2.2.2 浮点数 45
2.2.3 布尔值 46
2.3 常数 47
2.4 格式化输入输出功能 47
2.4.1 格式化输出 47
2.4.2 输入函数:input() 50
2.5 数据类型转换 51
2.6 上机实践演练——零用钱记账小管家 52
2.6.1 范例程序说明 52
2.6.2 程序代码说明 53
重点回顾 53
课后习题 54
第3章 表达式与运算符 56
3.1 算术运算符 57
3.2 赋值运算符 59
3.3 比较运算符 62
3.4 逻辑运算符 63
3.5 位运算符 66
3.6 位位移运算符 68
3.7 运算符的优先级 70
3.8 上机实践演练——成绩单统计小帮手 71
3.8.1 范例程序说明 71
3.8.2 读取CSV文件 72
3.8.3 程序代码说明 74
重点回顾 77
课后习题 78
第4章 流程控制结构 80
4.1 认识流程控制 81
4.1.1 顺序结构 81
4.1.2 选择结构 81
4.1.3 循环结构 82
4.2 选择流程控制 82
4.2.1 if...else条件语句 82
4.2.2 多重选择 85
4.2.3 嵌套if 87
4.3 循环 88
4.3.1 while循环 89
4.3.2 for循环 90
4.3.3 嵌套循环 92
4.4 continue指令和break指令 94
4.4.1 break指令 94
4.4.2 continue指令 95
4.5 上机实践演练——密码验证程序不求人 96
4.5.1 范例程序说明 96
4.5.2 程序代码说明 96
重点回顾 97
课后习题 98
第5章 字符串的处理 100
5.1 创建字符串 101
5.2 认识转义字符 102
5.3 参数格式化输出 103
5.4 字符串下标与切片 106
5.4.1 通过下标值获取某个字符 106
5.4.2 通过切片读取某段字符串 106
5.4.3 调用split()方法分割字符串 107
5.5 字符串的常用运算符 109
5.5.1 比较运算符 110
5.5.2 in与not in运算符 110
5.6 字符串的常用函数与方法 110
5.6.1 计算字符串的长度——len()函数 111
5.6.2 与字母大小写有关的方法 111
5.6.3 搜索特定字符串出现的次数——count() 112
5.6.4 删除字符串左右两边特定的字符——strip()、lstrip()、rstrip() 113
5.6.5 字符串替换——replace() 113
5.6.6 查找字符串——find()与index() 114
5.6.7 startswith()方法与endswith()方法 115
5.7 上机实践演练——开放数据的提取与应用 116
5.7.1 什么是开放数据 116
5.7.2 获取开放数据 117
5.7.3 范例程序说明 119
5.7.4 程序代码说明 120
重点回顾 123
课后习题 124
第6章 函数 126
6.1 认识函数 127
6.1.1 定义函数 127
6.1.2 调用函数 128
6.1.3 函数的返回值 130
6.2 Python的参数传递机制 132
6.3 变量的作用域 133
6.4 递归函数 134
6.4.1 递归的定义 134
6.4.2 斐波那契数列 136
6.4.3 汉诺塔问题 137
6.5 认识排序 141
6.5.1 选择排序法 141
6.5.2 冒泡排序法 144
6.5.3 排序函数——sorted() 147
6.6 lambda表达式 148
6.7 上机实践演练——输出金字塔图形 149
6.7.1 范例程序说明 149
6.7.2 程序代码说明 150
重点回顾 153
课后习题 154
第7章 高级数据类型 156
7.1 容器数据类型的比较 157
7.2 列表 157
7.2.1 创建列表 158
7.2.2 列表的常用内建函数 159
7.2.3 常用的列表运算符 161
7.2.4 列表的常用方法 162
7.2.5 用del删除变量与元素 164
7.2.6 二维和多维列表 164
7.3 元组 166
7.3.1 创建元组 167
7.3.2 元组的内建函数 167
7.3.3 元组的运算符 168
7.3.4 解包与交换 169
7.4 字典 170
7.4.1 创建字典 170
7.4.2 字典的基础操作 171
7.4.3 适用于字典的函数 172
7.4.4 适用于字典的运算符 172
7.4.5 适用于字典的处理方法 172
7.5 集合 176
7.5.1 创建集合 176
7.5.2 适用于集合的运算符 176
7.5.3 适用于集合的方法 177
7.6 字典综合范例——简易单词翻译器(图形用户界面) 178
7.6.1 范例程序说明 179
7.6.2 程序代码说明 179
重点回顾 182
课后习题 183
第8章 模块与程序包 185
8.1 导入模块 186
8.1.1 导入整个模块 187
8.1.2 替模块取别名 188
8.1.3 只导入特定的函数 189
8.2 自定义模块 191
认识Python的_name_属性 192
8.3 实用的内建模块与在线帮助 193
8.3.1 os模块 194
8.3.2 sys模块 195
8.3.3 random模块 197
8.3.4 datetime模块 198
8.3.5 查看模块的路径与文件名 201
8.3.6 程序包在线帮助文件 202
8.4 第三方程序包 204
8.4.1 使用pip管理程序安装程序包 205
8.4.2 从PyPI网站安装程序包 206
8.5 上机实践演练——乐透投注游戏程序 207
8.5.1 范例程序说明 207
8.5.2 程序代码说明 208
重点回顾 211
课后习题 212
第9章 文件的存取与处理 214
9.1 认识文件 215
9.1.1 文件的种类 215
9.1.2 认识文件与目录 215
9.1.3 绝对路径与相对路径 216
9.2 文件的读与写 216
9.2.1 文件的写入 217
9.2.2 文件的读取 219
9.3 二进制文件 224
9.4 综合范例程序——统计历年英语考试中的高频率单词 225
重点回顾 226
课后习题 228
第10章 错误与异常处理 229
10.1 程序的错误类型 230
10.1.1 语法错误 230
10.1.2 运行时错误 231
10.1.3 逻辑错误 232
10.2 认识异常 233
10.2.1 异常的类型 233
10.2.2 异常处理的时机 234
10.3 异常处理方式 235
10.3.1 异常处理的语法 235
10.3.2 用raise抛出指定的异常 238
10.4 综合范例程序——用异常处理来控制用户输入的数值 239
重点回顾 240
课后习题 241
第11章 面向对象程序设计 243
11.1 认识面向对象 244
11.1.1 类与对象 244
11.1.2 面向对象的特点 245
11.1.3 面向对象程序设计中的关键术语 246
11.2 Python的类与对象 247
11.2.1 定义类 247
11.2.2 类实例化 247
11.2.3 将对象初始化的_init_()方法 250
11.2.4 匿名对象 251
11.2.5 私有属性与方法 252
11.3 继承 253
11.3.1 单一继承与多重继承 254
11.3.2 覆盖 258
11.3.3 继承相关函数 259
11.3.4 多态 260
11.3.5 合成 261
11.4 上机实践演练——设计“选课和退课”程序 262
重点回顾 263
课后习题 264
第12章 开发图形用户界面的窗口程序 266
12.1 GUI tkinter程序包 267
12.1.1 导入tkinter程序包 267
12.1.2 创建主窗口 267
12.1.3 布局方式 268
12.2 图形用户界面控件 271
12.2.1 标签控件 271
12.2.2 按钮控件 273
12.2.3 文本编辑控件 275
12.2.4 多行文字控件 277
12.2.5 单选按钮控件 278
12.2.6 复选按钮控件 279
12.2.7 滚动条控件 281
12.3 对话框 283
12.3.1 消息框 283
12.3.2 简单型对话框 284
12.3.3 文件对话框 286
12.3.4 调色板选择框 288
12.4 菜单 290
12.5 绘制图形 295
12.5.1 加入位图图像 295
12.5.2 用Canvas控件绘制几何图形 296
12.6 上机实践演练——用图形用户界面实现简易计算器 297
12.6.1 创建主窗口 298
12.6.2 版面布局 298
12.6.3 创建标签、文本编辑与按钮控件 299
12.6.4 加入事件处理函数 301
12.6.5 捕获错误信息 302
重点回顾 304
课后习题 306
第13章 数组与科学计算 308
13.1 NumPy简介 309
13.2 一维数组的应用 309
13.2.1 一维数组的创建 310
13.2.2 ndarray类型的属性 311
13.2.3 一维数组的其他创建方式 311
13.2.4 数组的输出 313
13.2.5 数组的基本操作 314
13.2.6 通用函数 314
13.2.7 数组的下标值与切片运算 316
13.3 二维数组的创建与应用 317
13.3.1 二维数组的创建 318
13.3.2 矩阵相加 319
13.3.3 矩阵相乘 321
13.3.4 转置矩阵 322
13.4 上机实践演练——直方图的绘制 323
重点回顾 325
课后习题 326
第14章 数据提取与网络爬虫 328
14.1 数据提取前的准备工作 329
14.1.1 认识URI与URL 331
14.1.2 用urllib.parse模块解析URL 332
14.2 我的第一个网络爬虫程序 336
14.2.1 网页构成三要素 336
14.2.2 查看网页源代码 337
14.2.3 用urllib.request获取网页内容 341
14.2.4 实用的requests程序包 345
14.3 用Beautiful Soup 4进行网页解析 354
14.3.1 首选Tag 355
14.3.2 BeautifulSoup常用的属性和方法 359
14.3.3 BeautifulSoup程序包的应用范例 365
重点回顾 370
课后习题 371
第15章 课后习题参考答案 374
第1章 课后习题参考答案 374
第2章 课后习题参考答案 376
第3章 课后习题参考答案 377
第4章 课后习题参考答案 379
第5章 课后习题参考答案 380
第6章 课后习题参考答案 382
第7章 课后习题参考答案 384
第8章 课后习题参考答案 386
第9章 课后习题参考答案 387
第10章 课后习题参考答案 388
第11章 课后习题参考答案 389
第12章 课后习题参考答案 390
第13章 课后习题参考答案 391
第14章 课后习题参考答案 392