第1章 程序设计概述 1
1.1 计算机系统 1
1.1.1 计算机硬件系统 1
1.1.2 计算机软件系统 2
1.1.3 计算机中的信息表示 3
1.2 程序设计基础 5
1.2.1 程序 5
1.2.2 程序设计语言 5
1.2.3 程序设计 6
1.3 Python语言的发展历史与特点 7
1.3.1 Python语言的发展历史 7
1.3.2 Python语言的特点 8
1.4 Python程序开发 9
1.4.1 基本术语 9
1.4.2 Python程序的开发过程 10
1.4.3 搭建Python编程环境 10
1.5 初识Python程序 13
1.5.1 第一个Python程序 13
1.5.2 两个整数的加、减、乘、除、整除程序 14
1.5.3 算术表达式求值程序 15
1.5.4 华氏温度转换为摄氏温度的程序 15
思考与练习 16
编程题 16
第2章 基本程序设计 18
2.1 计算三角形面积的程序 18
2.2 标识符及其命名规则 19
2.2.1 标识符 19
2.2.2 关键字 19
2.3 变量和常量 20
2.3.1 变量 20
2.3.2 常量 21
2.4 数值数据类型和运算符 21
2.5 字符串和字符简介 25
2.6 列表、元组和字典简介 29
2.6.1 初识列表 29
2.6.2 初识元组 30
2.6.3 初识字典 31
2.7 内置函数和数学函数 32
2.7.1 内置函数 32
2.7.2 数学函数 33
2.8 对象和方法简介 36
2.9 程序设计风格 38
2.9.1 适当的注释 38
2.9.2 命名习惯 38
2.9.3 程序编排 39
思考与练习 39
编程题 41
第3章 程序的控制结构 42
3.1 单入口单出口的控制结构 42
3.2 布尔类型和关系运算符 43
3.3 成员运算符和身份运算符 45
3.4 if语句 47
3.4.1 单分支if语句和双分支if-else语句 47
3.4.2 多分支if-elif-else语句 48
3.5 产生随机数 50
3.6 逻辑运算符 51
3.7 循环 53
3.8 while语句 54
3.9 for语句 57
3.10 pass、break和continue语句 60
3.11 嵌套循环 61
思考与练习 63
编程题 65
第4章 函数 68
4.1 函数的定义和调用 68
4.2 函数的设计规则 72
4.2.1 函数头的设计规则 72
4.2.2 函数体的设计规则 72
4.3 函数的参数 73
4.3.1 位置参数和关键字参数 73
4.3.2 默认参数 74
4.3.3 参数传递 75
4.3.4 包裹传递参数和解包裹 76
4.4 变量的作用域 78
4.5 lambda表达式 79
4.6 函数式编程 81
4.7 递归 84
4.7.1 递归的定义 84
4.7.2 运用递归求解问题 86
4.7.3 递归和循环 87
4.7.4 尾递归 89
4.8 海龟图 90
4.8.1 设置画布 90
4.8.2 控制海龟 92
4.8.3 控制画笔 95
4.8.4 分形图形 100
4.9 模块化代码 101
思考与练习 102
编程题 104
第5章 字符串、列表和元组 107
5.1 字符串 107
5.1.1 字符编码和字符串 107
5.1.2 字符串的基本操作 109
5.1.3 正则表达式 115
5.2 列表 121
5.2.1 列表的概念 121
5.2.2 列表的基本操作 122
5.2.3 复制列表 131
5.2.4 列表和函数 133
5.2.5 二维列表 135
5.3 元组 137
5.3.1 元组的概念 137
5.3.2 元组的基本操作 138
5.4 排序和查找 140
5.4.1 排序 140
5.4.2 查找 142
思考与练习 144
编程题 146
第6章 字典和集合 150
6.1 字典 150
6.1.1 字典的概念 150
6.1.2 字典的基本操作 151
6.2 集合 157
6.2.1 集合的概念 157
6.2.2 集合的基本操作 158
思考与练习 165
编程题 166
第7章 对象和类 168
7.1 面向对象程序设计 168
7.2 使用类编写程序 169
7.2.1 声明类 169
7.2.2 创建对象 170
7.3 对象作为函数参数 171
7.4 对象列表 171
7.5 隐藏数据域 172
7.6 类变量和类方法 174
7.7 静态方法 176
7.8 使用属性 177
7.9 运算符重载和特殊方法 179
7.10 定制类 182
7.11 迭代器 185
7.12 生成器 188
7.13 处理日期和时间 190
7.13.1 datetime类 190
7.13.2 timedelta类 194
思考与练习 198
编程题 200
第8章 继承和多态 203
8.1 继承的概念 203
8.2 单继承 204
8.3 覆盖方法 206
8.4 object类 207
8.5 多态和动态绑定 207
8.6 鸭子类型 209
8.7 与对象和类相关的内置函数 210
8.8 类之间的关系 212
8.9 collections模块 215
8.10 多继承 218
思考与练习 220
编程题 221
第9章 异常处理 224
9.1 程序设计错误 224
9.2 什么是异常 225
9.3 如何处理异常 225
9.4 内置异常类 226
9.5 抛出异常 228
9.6 进一步讨论异常处理 229
9.7 自定义异常类 231
9.8 断言 232
思考与练习 233
编程题 233
第10章 文件 236
10.1 文件的概念 236
10.2 文件操作 237
10.3 文件读写 238
10.3.1 文本文件读写 238
10.3.2 二进制文件读写 241
10.4 对象序列化 242
10.4.1 pickle模块 242
10.4.2 JSON 243
10.5 内存文件 246
10.5.1 StringIO 246
10.5.2 BytesIO 247
10.6 CSV文件 247
10.7 电子表格文件 250
思考与练习 253
编程题 253
参考文献 255