定 价:¥69.00
作 者: | Paul Gries,Jennifer Campbell,Jason Montojo 著 |
出版社: | 机械工业出版社 |
丛编项: | |
标 签: | 暂缺 |
ISBN: | 9787111609940 | 出版时间: | 2018-12-01 | 包装: | 平装 |
开本: | 16开 | 页数: | 字数: |
译者序
原书前言
致谢
作者简介
第1 章 什么是编程 // 1
1.1 程序和编程 //2
1.2 什么是编程语言 //3
1.3 什么是程序错误(Bug) //3
1.4 方括号、圆括号和花括号的区别 //4
1.5 安装Python //4
第2 章 你好,Python // 5
2.1 计算机如何运行一个Python 程序 //5
2.2 表达式和值:用Python 做算术 //6
2.2.1 类型 // 7
2.2.2 整数除法、模和幂运算 // 8
2.3 什么是类型 //9
2.3.1 有穷精度 // 10
2.3.2 运算的优先级 // 10
2.4 变量和计算机内存:记忆值 //12
2.4.1 值、变量和计算机内存 // 13
2.4.2 赋值语句 // 14
2.4.3 给变量重新赋值 // 15
2.4.4 增强赋值 // 16
2.5 Python 如何告诉用户出错了 //18
2.6 占多行的单个语句 //19
2.7 代码的描述 //20
2.8 增强代码的可读性 //21
2.9 本章小结 //21
2.10 习题 //22
第3 章 函数的设计与应用 // 24
3.1 Python 提供的函数 //24
3.2 内存地址:Python 如何跟踪内存存储的值 //27
3.3 自定义函数 //28
3.4 用局部变量作临时存储 //31
3.5 在内存模型中跟踪函数调用 //32
3.6 设计新函数:一个菜单 //38
3.6.1 设计三个有关生日的函数 // 40
3.7 编写和运行一个程序 //48
3.8 省略一个返回语句:None //50
3.9 处理代码不能处理的情况 //50
3.10 本章小结 //51
3.11 习题 //52
第4 章 文本的处理 // 54
4.1 构造字符串 //54
4.1.1 串上的操作 // 55
4.2 在串中使用特殊字符 //57
4.3 构建多行串 //58
4.4 打印信息 //59
4.5 从键盘获取信息 //62
4.6 本章小结 //63
4.7 习题 //63
第5 章 选择 // 65
5.1 布尔类型 //65
5.1.1 布尔运算 // 65
5.1.2 关系运算 // 68
5.1.3 比较运算的组合 // 70
5.1.4 短路求值 // 72
5.1.5 串的比较 // 72
5.2 选择执行的语句 //73
5.3 嵌套条件语句 //79
5.4 记住一个布尔表达式求值的结果 //79
5.5 本章小结 //81
5.6 习题 //81
第6 章 程序组织的模块化方法 // 84
6.1 导入模块 //85
6.2 定义自己的模块 //89
6.2.1 导入时发生了什么 // 90
6.2.2 在导入时选择要运行的代码:__main__ // 91
6.3 半自动地测试代码 //95
6.4 函数分组的原则 //96
6.5 本章小结 //96
6.6 习题 //97
第7 章 方法的使用 // 98
7.1 模块、类和方法 //98
7.2 面向对象的调用方法 //100
7.3 探索字符串方法 //101
7.4 那些下划线是什么 //105
7.5 本章小结 //107
7.6 习题 //107
第8 章 使用列表存储数据集合 // 109
8.1 存储和访问列表中的数据 //109
8.1.1 空列表 // 111
8.1.2 列表是异构的 // 111
8.2 列表类型注释 //112
8.3 修改列表 //113
8.4 列表上的操作 //114
8.4.1 列表上的in 操作符 // 116
8.5 列表切片 //116
8.6 使用别名:名称代表什么 //118
8.6.1 可变参数 // 118
8.7 列表方法 //120
8.8 处理列表的列表 //121
8.9 本章小结 //123
8.10 习题 //123
第9 章 使用循环重复代码 // 126
9.1 处理列表中的数据项 //126
9.2 处理字符串中的字符 //128
9.3 在某个范围的数字上循环 //128
9.3.1 生成数字范围 // 128
9.4 用索引处理列表 //130
9.4.1 使用索引处理并行列表 // 132
9.5 循环嵌套循环 //133
9.5.1 嵌套列表上的循环 // 134
9.5.2 循环不规则列表 // 135
9.6 循环直到某个条件成立 //136
9.6.1 无限循环 // 138
9.7 基于用户输入的重复 //138
9.8 使用break 和continue 控制循环 //139
9.8.1 break 语句 // 139
9.8.2 continue 语句 // 141
9.8.3 关于break 和continue的警告 // 142
9.9 本章小结 //143
9.10 习题 //143
第10 章 文件读写 // 146
10.1 文件分多少种 //146
10.2 打开文件 //147
10.2.1 with 语句 // 148
10.2.2 计算机上的文件是如何组织的 // 149
10.2.3 指定想要的文件 // 149
10.3 读取文件的方法 //150
10.3.1 读取方法 // 150
10.3.2 Readlines 方法 // 151
10.3.3 "For Line in File" 方法 // 152
10.3.4 Readline 方法 // 153
10.4 互联网上的文件 //155
10.5 写入文件 //156
10.6 使用StringIO 编写示例调用 //157
10.7 编写使用文件读取技术的算法 //159
10.7.1 跳过标题 // 159
10.7.2 处理数据中缺失的值 // 161
10.7.3 处理空格分隔的数据 // 163
10.8 多行记录 //167
10.9 向前看 //170
10.10 本章小结 //172
10.11 习题 //172
第11 章 使用其他容器类型存储数据 // 174
11.1 使用集合存储数据 //174
11.1.1 集合运算 // 176
11.1.2 集合示例:北极鸟 // 178
11.1.3 集合的内容一定是不可变的 // 179
11.2 使用多元组存储数据 //179
11.2.1使用多元组赋值给多个变量 // 183
11.3 用字典存储数据 //184
11.3.1 更新和检查成员 // 186
11.3.2 遍历字典 // 187
11.3.3 字典操作 // 188
11.3.4 字典示例 // 190
11.4 反转字典 //191
11.5 在元组、集合和字典中使用in运算符 //192
11.6 各种容器的比较 //193
11.7 创建新的类型注释 //193
11.8 本章小结 //194
11.9 习题 //195
第12 章 算法的设计 // 197
12.1 查找两个最小值 //197
12.1.1 查找、移除、查找 // 199
12.1.2 排序、确定最小值、获取索引 // 201
12.1.3 遍历列表 // 202
12.2 定时功能 //205
12.3 本章小结 //207
12.4 习题 //207
第13 章 搜索与排序 // 209
13.1 搜索列表 //209
13.1.1 线性搜索概述 // 209
13.1.2 线性搜索的while 循环版本 // 211
13.1.3 线性搜索的for 循环版本 // 212
13.1.4 哨兵搜索 // 213
13.1.5 对搜索进行计时 // 214
13.1.6 线性搜索的运行时间 // 215
13.2 二分搜索 //215
13.2.1 二分搜索的运行时间 // 219
13.2.2 内置二分搜索 // 219
13.3 排序 //220
13.3.1 选择排序 // 221
13.3.2 插入排序 // 225
13.3.3 性能 // 227
13.4 更高效的排序算法 //229
13.4.1 第一次尝试 // 229
13.5 归并排序:一种快速排序算法 //229
13.5.1 归并两个有序列表 // 230
13.5.2 归并排序 // 230
13.5.3 归并排序的分析 // 232
13.6 本章小结 //233
13.7 习题 //234
第14 章 面向对象的编程 // 236
14.1 理解一个问题域 //236
14.2 isinstance 函数、object 类和Book 类 //237
14.3 在Book 类中编写一个方法 //240
14.4 使用Python 语法:更多特殊的方法 //246
14.5 面向对象理论的一些知识 //249
14.5.1 封装 // 249
14.5.2 多态 // 250
14.5.3 继承 // 251
14.6 案例学习:分子、原子和PDB文件 //254
14.6.1 Atom 类 // 255
14.6.2 Molecule 类 // 256
14.7 本章小结 //258
14.8 习题 //258
第15 章 测试与调试 // 262
15.1 为什么需要做程序测试 //262
15.2 案例学习:测试above_freezing //263
15.2.1 为above_freezing 选择测试样例 // 263
15.2.2 使用unittest 模块测试above_freezing // 264
15.3 案例学习:测试函数running_sum //267
15.3.1 为函数running_sum 选择测试样例 // 268
15.3.2 使用unittest 模块测试running_sum 函数 // 268
15.4 选择测试样例 //273
15.5 寻找程序错误 //273
15.6 本章小结 //274
15.7 习题 //274
第16 章 创建图形用户接口 // 277
16.1 使用tkinter 模块 //277
16.2 构建一个基本的GUI //278
16.2.1 在小部件中使用可修改变量 // 279
16.2.2 使用框架类型来组合小部件 // 280
16.2.3 使用输入框类型从用户处获取信息 // 281
16.3 模型、视图和控制器 //281
16.3.1 使用Lambda // 283
16.4 自定义可视化样式 //286
16.4.1 改变字体 // 286
16.4.2 改变颜色 // 286
16.4.3 小部件的布局 // 288
16.5 其他小部件简介 //289
16.5.1 使用文本 // 289
16.5.2 使用复选按钮 // 290
16.5.3 使用菜单 // 291
16.6 面向对象的GUI //292
16.7 本章小结 //293
16.8 习题 //294
第17 章 数据库 // 295
17.1 概述 //295
17.2 创建和填充 //296
17.2.1 保存更改 // 298
17.2.2 关闭连接 // 299
17.3 数据检索 //299
17.3.1 查询条件 // 301
17.4 更新和删除 //301
17.5 为缺失的数据使用NULL //302
17.6 使用连接来组合表格 //303
17.6.1 移除重复值 // 306
17.7 键和约束 //307
17.8 高级功能 //308
17.8.1 聚合 // 308
17.8.2 分组 // 308
17.8.3 自连接 // 309
17.8.4 嵌套查询 // 310
17.8.5 事务 // 312
17.9 本章小结 //313
17.10 习题 //314
参考文献 //316