第1章 计算与问题求解简介 1
1.1 计算与Python简介 1
1.2 程序开发周期 3
1.2.1 在计算机上执行任务 3
1.2.2 程序规划 4
1.3 编程工具 4
1.3.1 流程图 5
1.3.2 伪代码 6
1.3.3 层次结构图 7
1.3.4 判断结构 7
1.3.5 判断纽约按数字编号街道方向的算法 8
1.3.6 循环结构 9
1.3.7 班级平均成绩算法 9
1.4 Python简介 11
1.4.1 启动IDLE 11
1.4.2 Python shell 12
1.4.3 Python代码编辑器 13
1.4.4 打开程序 15
第2章 核心对象、变量、输入和输出 19
2.1 数值 19
2.1.1 两种数值类型:整型和浮点型 19
2.1.2 算术运算符 19
2.1.3 print函数 19
2.1.4 变量 20
2.1.5 abs、int与round函数 21
2.1.6 增量赋值 22
2.1.7 其他两种整型运算符 22
2.1.8 括号与优先级 23
2.1.9 三种类型的错误 23
2.1.10 内存中的数值对象 24
2.2 字符串 29
2.2.1 字符串字面量 29
2.2.2 变量 30
2.2.3 索引和切片 30
2.2.4 反向索引 31
2.2.5 切片的默认边界 31
2.2.6 字符串连接 32
2.2.7 字符串重复 32
2.2.8 字符串函数和方法 32
2.2.9 链式方法 33
2.2.10 input函数 33
2.2.11 int、float、eval和str函数 33
2.2.12 内部文档 35
2.2.13 行延续 35
2.2.14 索引和切片越界 35
2.3 输出 42
2.3.1 print的可选参数sep 42
2.3.2 print的可选参数end 42
2.3.3 转义序列 43
2.3.4 域内输出对齐 43
2.3.5 使用format方法对齐输出 44
2.4 列表、元组和文件 50
2.4.1 列表对象 50
2.4.2 切片 51
2.4.3 split和join方法 52
2.4.4 文本文件 53
2.4.5 元组对象 54
2.4.6 嵌套列表 55
2.4.7 不可变和可变对象 55
2.4.8 列表复制 56
2.4.9 索引、删除和切片越界 56
关键术语和概念 62
编程项目 64
第3章 控制流结构 67
3.1 关系和逻辑运算符 67
3.1.1 ASCII值 67
3.1.2 关系运算符 68
3.1.3 列表元素的排序 69
3.1.4 逻辑运算符 70
3.1.5 短路求值 71
3.1.6 布尔数据类型 72
3.1.7 三种返回布尔值的方法 72
3.1.8 简化条件 73
3.2 判断结构 77
3.2.1 if-else语句 78
3.2.2 if语句 79
3.2.3 嵌套的if-else语句 80
3.2.4 elif子句 81
3.2.5 使用if-elif-else语句的输入验证 83
3.2.6 True和False 84
3.3 while循环 92
3.3.1 while循环 92
3.3.2 break语句 95
3.3.3 continue语句 95
3.3.4 创建菜单 96
3.3.5 无限循环 97
3.4 for循环 103
3.4.1 等差数列的循环遍历 103
3.4.2 range函数的步长值 105
3.4.3 for循环的嵌套 106
3.4.4 字符串中字符的循环遍历 107
3.4.5 遍历列表或元组元素的循环遍历 107
3.4.6 文本文件的行循环遍历 109
3.4.7 pass语句 110
3.4.8 使用文本文件的内容创建列表 110
关键术语和概念 120
编程项目 121
第4章 函数 125
4.1 函数(第一部分) 125
4.1.1 内建函数 125
4.1.2 用户自定义函数 125
4.1.3 具有一个参数的函数 126
4.1.4 向函数传值 127
4.1.5 具有多个参数的函数 128
4.1.6 返回布尔型或列表型的函数 130
4.1.7 无返回值的函数 131
4.1.8 无参数的函数 132
4.1.9 变量作用域 133
4.1.10 命名常量 134
4.1.11 库模块 135
4.2 函数(第二部分) 144
4.2.1 调用其他函数的函数 144
4.2.2 返回多个值的函数 144
4.2.3 列表解析 146
4.2.4 默认值 147
4.2.5 按参数名传递 147
4.2.6 自定义排序 149
4.2.7 Lambda表达式 150
4.2.8 sorted函数 150
4.3 程序设计 160
4.3.1 自顶向下的设计 160
4.3.2 结构化编程 162
4.3.3 结构化编程的优势 162
4.3.4 面向对象编程 163
4.3.5 相关引用 163
关键术语和概念 163
编程项目 165
第5章 数据处理 168
5.1 数据处理(第一部分) 168
5.1.1 读取文本文件 168
5.1.2 创建文本文件 170
5.1.3 向已有文本文件中添加行 173
5.1.4 修改文本文件中的元素 173
5.1.5 集合 174
5.1.6 集合推导 175
5.1.7 集合论方法 175
5.1.8 在文件中使用集合论的方法 175
5.2 数据处理(第二部分) 183
5.2.1 CSV文件 183
5.2.2 访问CSV文件中的数据 183
5.2.3 使用列表分析CSV文件中的数据 184
5.2.4 分析数值数据 185
5.2.5 Excel和CSV文件 186
5.3 字典 195
5.3.1 字典 195
5.3.2 dict函数 197
5.3.3 从文本文件中创建字典 198
5.3.4 使用字典作为频率表 199
5.3.5 在二进制文件中存储字典 200
5.3.6 值为字典的字典 201
5.3.7 从字典中获取顺序数据 202
5.3.8 使用元组作为字典的键 203
5.3.9 字典推导 204
关键术语和概念 209
编程项目 211
第6章 其他主题 216
6.1 异常处理 216
6.1.1 异常 216
6.1.2 try语句 217
6.1.3 else与finally子句 218
6.2 生成随机数 223
6.2.1 random模块中的函数 223
6.2.2 机会游戏 223
6.3 海龟图 229
6.3.1 坐标 229
6.3.2 turtle模块中的方法 229
6.3.3 矩形 230
6.3.4 旗帜 232
6.3.5 write方法 233
6.3.6 柱状图 234
6.3.7 折线图 235
6.4 递归 239
6.4.1 递归的指数计算函数 239
6.4.2 递归的回文生成函数 241
6.4.3 递归的分形计算函数 241
关键术语和概念 246
编程项目 247
第7章 面向对象编程 250
7.1 类与对象 250
7.1.1 内建类 250
7.1.2 用户自定义类 250
7.1.3 初始化方法的其他形式 253
7.1.4 类定义中方法的数量 253
7.1.5 对象列表 255
7.2 继承 262
7.2.1 学期成绩类 262
7.2.2 is-a关系 264
7.2.3 isinstance函数 264
7.2.4 向子类中添加新的实例变量 265
7.2.5 覆盖方法 266
7.2.6 多态 268
关键术语和概念 273
编程项目 274
第8章 图形用户界面 276
8.1 控件 276
8.1.1 什么是图形用户界面 276
8.1.2 按钮控件 277
8.1.3 标签控件 278
8.1.4 输入控件 279
8.1.5 只读输入控件 280
8.1.6 列表框控件 281
8.1.7 滚动条控件 283
8.2 网格布局管理器 288
8.2.1 网格 288
8.2.2 sticky属性 290
8.2.3 向列表框添加垂直滚动条 290
8.2.4 设计窗体布局 291
8.3 编写GUI程序 295
8.3.1 将TUI程序改写成GUI程序 295
8.3.2 将文件加载到列表框中 297
8.3.3 用面向对象方式编写GUI程序 298
关键术语和概念 302
编程项目 304
附录A ASCII值 306
附录B 保留字 308
附录C 安装Python和IDLE 309
奇数编号习题答案 311
索引 359