前言
第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 安装Anaconda17
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 World33
重点回顾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 嵌套if87
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与URL331
14.1.2 用urllib.parse模块解析URL332
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 首选Tag355
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