第一部分 基础知识 3
第1章 计算思维与Python语言 3
1.1 程序设计 3
1.1.1 程序与计算机程序 3
1.1.2 程序设计步骤 5
1.1.3 程序设计语言 6
1.1.4 高级语言分类 7
1.2 计算思维 8
1.2.1 计算思维概念 9
1.2.2 计算思维特征 11
1.3 Python简介 12
1.3.1 Python优点 12
1.3.2 Python缺点 14
1.3.3 Python主要应用 15
1.4 Python运行环境 16
1.4.1 Python下载与安装 16
1.4.2 Python帮助信息 19
1.4.3 Python文件夹结构 21
1.4.4 Python运行模式 21
习题1 27
第2章 算法 29
2.1 程序设计方法 29
2.1.1 结构化程序设计方法 29
2.1.2 面向对象程序设计方法 30
2.2 算法 32
2.2.1 求解问题方式 32
2.2.2 算法概念 32
2.2.3 算法特征 32
2.3 算法表示 33
2.3.1 使用自然语言描述算法 33
2.3.2 使用传统流程图描述算法 34
2.3.3 使用N-S图描述算法 36
2.3.4 使用伪代码描述算法 37
2.4 常用算法介绍 37
2.4.1 简单算法 37
2.4.2 阶乘算法 38
2.4.3 求斐波那契数算法 38
2.4.4 求最大公约数算法 39
2.4.5 判断素数算法 40
2.5 综合算法介绍 40
2.5.1 数值计算 40
2.5.2 穷举算法 41
2.5.3 查找算法 43
2.5.4 排序算法 44
2.6 迭代、递推和递归 46
2.6.1 迭代 46
2.6.2 递推 47
2.6.3 递归 48
习题2 48
第3章 数据与计算 50
3.1 输入输出 50
3.1.1 输入数据 50
3.1.2 输出数据 51
3.2 编码风格与简单程序 53
3.2.1 编码风格 53
3.2.2 简单程序 53
3.3 组合符号 54
3.3.1 标识符 54
3.3.2 关键字 55
3.3.3 预定义标识符 56
3.3.4 命名规则 57
3.4 数据类型 57
3.4.1 数据类型及其分类 57
3.4.2 常量和变量 58
3.5 数字数据 58
3.5.1 整型数据 58
3.5.2 实型数据 61
3.5.3 分数型数据 62
3.5.4 复数型数据 62
3.6 字符串型数据 63
3.6.1 字符串常量 63
3.6.2 转义字符 63
3.6.3 字符串测试函数 64
3.6.4 字符串运算符 65
3.6.5 字符串内置函数 66
3.7 布尔型数据 68
3.7.1 关系运算 68
3.7.2 布尔常量 69
3.7.3 布尔运算 69
3.8 序列数据 70
3.8.1 列表 70
3.8.2 元组 74
3.8.3 字典 74
3.8.4 集合 76
习题3 77
第4章 流程控制 80
4.1 简单程序与流程控制 80
4.1.1 简单程序 80
4.1.2 流程控制语句 81
4.1.3 测试条件 81
4.2 分支选择 81
4.2.1 单分支选择 82
4.2.2 双分支选择 83
4.2.3 多分支选择 84
4.3 循环控制 86
4.3.1 while语句 86
4.3.2 range()函数 89
4.3.3 for语句 89
4.3.4 循环嵌套 94
4.3.5 continue、break和pass语句 98
4.4 列表处理 101
4.4.1 一维列表 102
4.4.2 二维列表 107
4.5 查找与排序 114
4.5.1 折半查找 114
4.5.2 排序 115
4.6 字符串处理 118
4.6.1 单个字符串 118
4.6.2 多个字符串 122
习题4 123
第5章 函数 125
5.1 函数定义与调用 125
5.1.1 函数定义与调用 125
5.1.2 嵌套调用 128
5.1.3 返回值类型与函数类型 129
5.1.4 返回列表 130
5.2 形式参数与实在参数 130
5.2.1 简单变量作为实参 131
5.2.2 一维列表作为实参 137
5.2.3 二维列表作为实参 139
5.2.4 可变参数 139
5.3 变量的作用域 140
5.3.1 全局变量与局部变量 140
5.3.2 global语句 141
5.3.3 变量同名 143
5.4 匿名函数 144
5.4.1 lambda函数 144
5.4.2 程序示例 144
5.5 递归函数 145
5.5.1 递归函数及其调用 145
5.5.2 程序示例 145
习题5 151
第6章 模块 152
6.1 模块 152
6.1.1 导入模块 152
6.1.2 导入模块成员 153
6.1.3 模块搜索路径 154
6.2 数值类模块 155
6.2.1 math模块 155
6.2.2 cmath模块 157
6.2.3 decimal模块 157
6.2.4 fractions模块 159
6.3 random模块 161
6.3.1 常用函数 161
6.3.2 程序示例 163
6.4 时间类模块 165
6.4.1 time模块 167
6.4.2 datetime模块 171
6.4.3 calendar模块 172
6.5 os模块 174
6.5.1 常用函数 174
6.5.2 程序示例 176
6.6 sys模块 178
6.6.1 常用函数 178
6.6.2 命令行参数 179
6.7 自定义模块 180
6.7.1 主模块 181
6.7.2 自定义模块示例 182
6.7.3 Python编译文件 183
6.8 自定义包 183
6.8.1 包与模块的组织结构 183
6.8.2 包与模块的导入 184
6.8.3 自定义包示例 185
习题6 187
第7章 数据文件 189
7.1 文件概述 189
7.1.1 引言 189
7.1.2 文件分类 189
7.2 打开文件与关闭文件 191
7.2.1 打开文件 191
7.2.2 关闭文件 193
7.3 读写文本文件 193
7.3.1 读取文件函数 193
7.3.2 读取文本文件 194
7.3.3 写入文本文件 198
7.4 读写二进制文件 200
7.4.1 将字符串转换为字节数据 201
7.4.2 将字节数据转换为字符串 201
7.4.3 读写二进制文件 202
7.5 struct模块 202
7.5.1 pack()、unpack()和calcsize()函数 203
7.5.2 程序示例 204
7.6 fileinput模块 206
7.6.1 fileinput模块 206
7.6.2 程序示例 206
7.7 codecs模块 208
7.7.1 读取文本文件 209
7.7.2 写入文本文件 209
习题7 210
第8章 面向对象编程 212
8.1 面向对象编程基础 212
8.1.1 对象与类 212
8.1.2 对象特征 213
8.1.3 继承 213
8.1.4 多态性与重载 214
8.2 类的定义和引用 215
8.2.1 类的构成 215
8.2.2 类的定义与引用 215
8.2.3 构造函数和析构函数 217
8.2.4 实例变量 219
8.2.5 私有成员与公有成员 220
8.2.6 公有方法与私有方法 221
8.3 继承 222
8.3.1 单继承 222
8.3.2 多继承 223
8.3.3 方法重写 224
8.4 多态与运算符重载 224
8.4.1 多态 224
8.4.2 运算符重载 225
习题8 226
第9章 异常处理 229
9.1 程序错误及其处理 229
9.1.1 程序错误类型 229
9.1.2 程序运行错误处理方法 232
9.2 标准异常 233
9.2.1 标准异常 233
9.2.2 标准异常示例 234
9.3 抛出异常和捕捉异常 235
9.3.1 抛出异常 235
9.3.2 捕捉异常 237
9.4 断言 240
9.4.1 断言概念 240
9.4.2 assert语句 240
9.5 自定义异常类 242
9.5.1 引言 242
9.5.2 程序示例 242
习题9 243
第10章 图形界面设计 245
10.1 Python图形界面设计 245
10.1.1 Python图形开发库 245
10.1.2 Tkinter的常用组件与标准属性 246
10.1.3 创建窗口 246
10.2 布局管理 247
10.2.1 pack布局的管理 247
10.2.2 grid布局的管理 249
10.2.3 place布局的管理 251
10.3 Tkinter的常用组件 252
10.3.1 Label组件 252
10.3.2 Button组件 253
10.3.3 Entry和Text组件 255
10.3.4 Listbox组件 257
10.3.5 Radiobutton和Checkbutton组件 259
10.3.6 Frame与LabelFrame组件 261
10.3.7 Scrollbar组件 262
10.3.8 Menu组件 264
10.3.9 对话框 266
10.4 事件处理 271
10.4.1 事件类型 271
10.4.2 事件绑定 273
10.4.3 键盘事件 275
习题10 276
第11章 绘制曲线 278
11.1 Canvas组件 278
11.1.1 Canvas对象及其通用属性 278
11.1.2 屏幕坐标 279
11.2 绘制图形 279
11.2.1 绘制直线、矩形和多边形 279
11.2.2 绘制圆弧和椭圆 282
11.3 显示位图、图像与文本 285
11.3.1 显示位图 285
11.3.2 显示图像 286
11.3.3 显示文本 287
11.4 控制图形 288
11.4.1 删除图形 288
11.4.2 移动图形 289
11.4.3 位置坐标 289
11.4.4 缩放图形 290
11.4.5 绘制函数图形 292
11.5 体验内置的turtle演示程序 293
11.5.1 利用IDLE内置程序 293
11.5.2 利用安装文件夹中的演示程序 294
11.6 turtle绘图 296
11.6.1 turtle模块 296
11.6.2 应用案例 297
11.7 分形图形 301
11.7.1 Koch曲线 301
11.7.2 Hilbert曲线 302
11.7.3 分形树 304
11.8 显示字体 306
11.8.1 通过元组显示字体 306
11.8.2 通过Font对象显示字体 307
习题11 308
第二部分 实验 313
实验Ⅰ 数据与计算 313
实验Ⅱ 流程控制 316
实验Ⅲ 函数 319
实验Ⅳ 数据文件 323
实验Ⅴ 面向对象编程 325
实验Ⅵ 图形界面设计 329
实验Ⅶ 绘制曲线 333
参考文献 336