[套装书]Python程序设计(原书第3版)+Python程序设计与算法思维(2册)

作者
凯·霍斯特曼 兰斯·尼塞斯 斯图尔特·里杰斯 马蒂·斯特普 艾利森·奥伯恩
丛书名
计算机科学丛书
出版社
机械工业出版社
ISBN
9782104211457
简要
简介
内容简介书籍计算机书籍 ---------------------------8080099 - Python程序设计(原书第3版)--------------------------- 本书面向Python初学者,采用模块方式呈现知识要点,而非百科全书式的语法大全。书中介绍了数值、字符串、列表、字典、集合、控制结构、函数、递归、排序、面向对象编程、文件操作等基础知识,通过大量案例来演示这些技术,重视计算思维的培养,由浅入深地将解决问题的完整方案一步步呈现在读者面前。本版新增了面向数据科学的程序示例和练习,扩展了有关字符串和列表的内容,并引入了海龟图形和游戏编程等新的数据包。本书既可作为高等院校计算机专业第 一门程序设计课的教材,也可供Python爱好者自学参考。 ---------------------------8070378 - Python程序设计与算法思维--------------------------- 本书作者在构建Python程序的过程中,将经过证明的、做过类测试的、回归基本的策略首次引入到Python程序设计教学中。本书以聚焦问题解决的分层渐进方法介绍了编程的基本原理,并在各个章节增加了新的语法和概念,以及展示了好的编程风格应该是什么样的,分阶段开发了一个复杂的程序。本书关注的是问题的解决,强调算法思维。
目录
[套装书具体书目]
8070378 - Python程序设计与算法思维 - 9787111655145 - 机械工业出版社 - 定价 139
8080099 - Python程序设计(原书第3版) - 9787111678816 - 机械工业出版社 - 定价 169



---------------------------8080099 - Python程序设计(原书第3版)---------------------------


出版者的话
译者序
前言
第1章 导论 1
1.1 计算机程序 1
1.2 计算机组成结构 2
1.3 Python程序设计语言 4
1.4 熟悉程序设计环境 5
1.5 分析我们的第一个程序 9
1.6 错误信息 11
1.7 问题求解:算法设计 12
本章小结 18
复习题 19
编程题 20
第2章 数值和字符串编程 22
2.1 变量 22
2.1.1 定义变量 22
2.1.2 数值类型 24
2.1.3 变量名称 25
2.1.4 常量 25
2.1.5 注释 26
2.2 算术运算 28
2.2.1 基本的算术运算 28
2.2.2 乘幂 28
2.2.3 整除和余数 29
2.2.4 调用函数 30
2.2.5 数学函数 31
2.3 问题求解:先手工演算 35
2.4 字符串 38
2.4.1 字符串类型 38
2.4.2 字符串的拼接和重复 38
2.4.3 数值和字符串之间的相互转换 39
2.4.4 字符串和字符 40
2.4.5 字符串方法 41
2.5 输入和输出 43
2.5.1 用户输入 43
2.5.2 数值输入 44
2.5.3 格式化输出 45
2.6 图形应用:简单绘图 54
2.6.1 创建窗口 54
2.6.2 直线和多边形 55
2.6.3 填充形状和颜色 57
2.6.4 椭圆、圆和文本 59
本章小结 64
复习题 65
编程题 68
第3章 选择结构 76
3.1 if语句 76
3.2 关系运算符 80
3.3 嵌套分支 87
3.4 多分支结构 91
3.5 问题求解:流程图 96
3.6 问题求解:测试用例 99
3.7 布尔变量和运算符 100
3.8 分析字符串 105
3.9 应用案例:输入验证 107
本章小结 120
复习题 121
编程题 127
第4章 循环结构 136
4.1 while语句 136
4.2 问题求解:手工跟踪 142
4.3 应用案例:处理哨兵值 145
4.4 问题求解:故事板 148
4.5 常用循环算法 150
4.5.1 求和和平均数 150
4.5.2 匹配项计数 151
4.5.3 提示输入直到找到匹配项 151
4.5.4 最大值和最小值 151
4.5.5 比较相邻值 152
4.6 for循环 153
4.7 嵌套循环 161
4.8 处理字符串 167
4.8.1 统计匹配项 167
4.8.2 查找所有匹配项 167
4.8.3 找到第一个或者最后一个匹配项 167
4.8.4 验证字符串 168
4.8.5 创建新的字符串 169
4.9 应用案例:随机数和仿真 170
4.9.1 生成随机数 170
4.9.2 模拟掷骰子 171
4.9.3 蒙特卡罗方法 172
4.10 图形应用:数字图像处理 176
4.10.1 过滤图像 176
4.10.2 重新配置图像 179
4.11 问题求解:先易后难 180
本章小结 185
复习题 186
编程题 190
第5章 函数 200
5.1 作为黑盒的函数 200
5.2 实现和测试函数 201
5.2.1 实现函数 201
5.2.2 测试函数 202
5.2.3 包含函数的程序 202
5.3 参数传递 205
5.4 返回值 207
5.5 不带返回值的函数 214
5.6 问题求解:可复用函数 217
5.7 问题求解:逐步求精 218
5.8 变量的作用范围 231
5.9 图形应用:构建图像处理工具包 237
5.9.1 入门 237
5.9.2 比较图像 238
5.9.3 调整图像亮度 238
5.9.4 旋转图像 240
5.9.5 使用工具包 241
5.10 递归函数(可选) 245
本章小结 255
复习题 256
编程题 259
第6章 列表 266
6.1 列表的基本属性 266
6.1.1 创建列表 266
6.1.2 访问列表元素 267
6.1.3 遍历列表 269
6.1.4 列表引用 269
6.2 列表操作 273
6.2.1 附加元素 273
6.2.2 插入元素 273
6.2.3 查找元素 274
6.2.4 删除元素 275
6.2.5 拼接和复制 276
6.2.6 相等性测试 276
6.2.7 求和、最大值、最小值和排序 276
6.2.8 复制列表 277
6.3 常用列表算法 279
6.3.1 填充列表 279
6.3.2 组合列表元素 279
6.3.3 元素分隔符 280
6.3.4 最大值和最小值 280
6.3.5 线性查找 281
6.3.6 收集和统计匹配项 281
6.3.7 删除匹配项 282
6.3.8 交换元素 283
6.3.9 读取输入 284
6.4 将列表与函数一起使用 288
6.5 问题求解:修改算法 295
6.6 问题求解:通过操作实体对象发现算法 300
6.7 表格 304
6.7.1 创建表格 304
6.7.2 访问元素 305
6.7.3 定位相邻元素 305
6.7.4 计算行总计和列总计 306
6.7.5 将表格与函数一起使用 306
本章小结 314
复习题 315
编程题 318
第7章 文件和异常 325
7.1 读取和写入文本文件 325
7.1.1 打开文件 325
7.1.2 读取文件 326
7.1.3 写入文件 327
7.1.4 文件处理示例 327
7.2 文本输入和输出 328
7.2.1 遍历文件中的行 329
7.2.2 读取单词 330
7.2.3 读取字符 332
7.2.4 读取记录 333
7.3 命令行参数 340
7.4 二进制文件和随机访问(可选) 352
7.4.1 读取和写入二进制文件 352
7.4.2 随机访问 353
7.4.3 图像文件 353
7.4.4 处理BMP文件 355
7.5 异常处理 361
7.5.1 引发异常 361
7.5.2 处理异常 362
7.5.3 finally子句 364
7.6 应用案例:处理输入错误 367
本章小结 378
复习题 379
编程题 380
第8章 集合和字典 390
8.1 集合 390
8.1.1 创建和使用集合 390
8.1.2 添加和删除元素 392
8.1.3 子集 393
8.1.4 并集、交集和差集 393
8.2 字典 400
8.2.1 创建字典 401
8.2.2 访问字典的值 401
8.2.3 添加和修改数据项 401
8.2.4 删除数据项 402
8.2.5 遍历字典 403
8.3 复杂的数据结构 409
8.3.1 包含集合的字典 409
8.3.2 包含列表的字典 411
本章小结 420
复习题 421
编程题 423
第9章 对象和类 426
9.1 面向对象的程序设计 426
9.2 实现一个简单的类 427
9.3 指定类的公共接口 430
9.4 设计数据表示 431
9.5 构造函数 432
9.6 实现方法 435
9.7 测试类 438
9.8 问题求解:跟踪对象 445
9.9 问题求解:对象数据的模式 448
9.9.1 使用总计 448
9.9.2 统计事件 449
9.9.3 收集值 449
9.9.4 管理对象的属性 449
9.9.5 使用不同的状态建模对象 450
9.9.6 描述对象的位置 451
9.10 对象引用 451
9.10.1 共享引用 452
9.10.2 None引用 453
9.10.3 self引用 454
9.10.4 对象的生命周期 454
9.11 应用案例:实现一个Fraction类 456
9.11.1 Fraction类的设计 456
9.11.2 构造函数 457
9.11.3 特殊方法 458
9.11.4 算术运算 459
9.11.5 逻辑运算 460
本章小结 467
复习题 468
编程题 469
第10章 继承 475
10.1 继承的层次结构 475
10.2 实现子类 479
10.3 调用超类的构造函数 482
10.4 重写方法 485
10.5 多态 488
10.6 应用案例:几何图形类的层次结构 500
10.6.1 基类 500
10.6.2 基本形状 502
10.6.3 形状组 505
本章小结 514
复习题 514
编程题 515
第11章 递归 520
11.1 三角形数字之再探讨 520
11.2 问题求解:递归思维 523
11.3 递归辅助函数 527
11.4 递归的效率 528
11.5 排列 533
11.6 回溯 536
11.7 相互递归 543
本章小结 550
复习题 550
编程题 551
第12章 排序和查找 556
12.1 选择排序算法 556
12.2 选择排序算法的性能测量 558
12.3 选择排序算法的性能分析 559
12.4 合并排序算法 563
12.5 分析合并排序算法 565
12.6 查找算法 569
12.6.1 线性查找 570
12.6.2 二分查找 571
12.7 问题求解:估计算法的运行时间 573
12.7.1 线性时间 573
12.7.2 二次时间 574
12.7.3 三角形模式 575
12.7.4 对数时间 576
本章小结 581
复习题 581
编程题 584



---------------------------8070378 - Python程序设计与算法思维---------------------------


出版者的话
译者序
前言
第1章 Python编程简介 1
1.1 计算的基本概念 1
1.1.1 为何编程 1
1.1.2 硬件和软件 2
1.1.3 数字领域 3
1.1.4 编程的过程 4
1.1.5 为何选择Python 5
1.1.6 Python编程环境 6
1.2 一个完整的Python程序 7
1.2.1 打印输出 9
1.2.2 字符串文字(字符串) 9
1.2.3 转义序列 10
1.2.4 打印复杂图形 11
1.2.5 注释、空白和可读性 12
1.3 程序错误 14
1.3.1 语法错误 15
1.3.2 逻辑错误 17
1.4 程序分解 17
1.4.1 函数 18
1.4.2 控制流 21
1.4.3 标识符和关键字 23
1.4.4 调用其他函数的函数 24
1.4.5 运行时错误的例子 26
1.5 案例研究:绘图 27
1.5.1 结构化版本 27
1.5.2 没有冗余的最终版本 29
1.5.3 执行流分析 30
本章小结 31
自测题 32
习题 35
编程项目 39
第2章 数据和确定循环 40
2.1 基本数据概念 40
2.1.1 数据类型 40
2.1.2 表达式 41
2.1.3 字面量 43
2.1.4 算术运算符 44
2.1.5 运算优先级 46
2.1.6 混合和转换类型 48
2.2 变量 49
2.2.1 使用变量的程序 52
2.2.2 自增/自减运算符 56
2.2.3 打印多个值 57
2.3 for循环 59
2.3.1 使用循环变量 62
2.3.2 关于循环范围的细节 64
2.3.3 字符串乘法与打印部分行 67
2.3.4 嵌套for循环 70
2.4 管理复杂性 72
2.4.1 作用域 72
2.4.2 伪代码 74
2.4.3 常量 78
2.5 案例研究:沙漏图 80
2.5.1 问题分解和伪代码 81
2.5.2 初始结构化版本 83
2.5.3 增加一个常量 84
本章小结 86
自测题 86
习题 91
编程项目 94
第3章 参数与图形 98
3.1 参数 98
3.1.1 参数的机制 103
3.1.2 参数的限制 105
3.1.3 多个参数 107
3.1.4 参数与常量 110
3.1.5 可选参数 110
3.2 返回值 111
3.2.1 math模块 113
3.2.2 random模块 116
3.2.3 定义返回值的函数 119
3.2.4 返回多个值 123
3.3 交互式程序 124
3.4 图形 128
3.4.1 DrawingPanel简介 129
3.4.2 画线和形状 131
3.4.3 颜色 133
3.4.4 使用循环画图 137
3.4.5 文本与字体 139
3.4.6 图像 141
3.4.7 画图过程分解 141
3.5 案例研究:抛射轨迹 144
3.5.1 非结构化解决方案 146
3.5.2 结构化解决方案 148
3.5.3 图形版本 150
本章小结 153
自测题 153
习题 158
编程项目 164
第4章 条件执行 166
4.1 if/else语句 166
4.1.1 关系运算符 168
4.1.2 if/else语句嵌套 170
4.1.3 if/else语句分解 174
4.1.4 多个判别条件 176
4.2 累积算法 176
4.2.1 累积求和 176
4.2.2 求最小/最大值循环 178
4.2.3 使用if语句的累积求和 181
4.2.4 舍入误差 183
4.3 函数中的条件执行 185
4.3.1 前置条件和后置条件 185
4.3.2 抛出异常 186
4.3.3 回顾返回值 189
4.3.4 分支选择推理 191
4.4 字符串 193
4.4.1 字符串方法 194
4.4.2 按索引访问字符 196
4.4.3 字母和数值之间的转换 200
4.4.4 累积文本算法 202
4.5 案例研究:基础代谢率 203
4.5.1 单人非结构化BMR解决方案 204
4.5.2 双人非结构化BMR解决方案 207
4.5.3 双人结构化BMR解决方案 209
4.5.4 过程式设计启发式 212
本章小结 216
自测题 216
习题 221
编程项目 223
第5章 程序逻辑与不确定循环 224
5.1 while循环 224
5.1.1 寻找最小因数的循环 226
5.1.2 循环的启动 227
5.2 栅栏算法 230
5.2.1 带if语句的栅栏循环 232
5.2.2 哨兵循环 234
5.2.3 带最小/最大值的哨兵循环 236
5.3 布尔逻辑 238
5.3.1 逻辑运算符 239
5.3.2 布尔变量与标志 241
5.3.3 谓词函数 243
5.3.4 布尔Zen 245
5.3.5 短路求值 248
5.4 健壮的程序 251
5.4.1 try/except语句 252
5.4.2 处理用户错误 255
5.5 断言与程序逻辑 256
5.5.1 针对断言的推理 258
5.5.2 一个详细的断言示例 259
5.6 案例研究:数字猜谜游戏 262
5.6.1 不带提示的初始版本 263
5.6.2 带提示的随机化版本 264
5.6.3 健壮的最终版本 267
本章小结 270
自测题 270
习题 276
编程项目 279
第6章 文件处理 280
6.1 文件读取基础知识 280
6.1.1 数据和文件 280
6.1.2 在Python中读取文件 282
6.1.3 基于行的文件处理 285
6.1.4 文件结构与消耗式输入 286
6.1.5 提示输入文件 290
6.2 基于标记的处理 292
6.2.1 数值输入 294
6.2.2 处理非法输入 295
6.2.3 行与标记的混合使用 296
6.2.4 处理不同数量的标记 297
6.2.5 复杂的输入文件 301
6.3 高级文件处理 303
6.3.1 多行输入记录 303
6.3.2 文件输出 305
6.3.3 从网页中读取数据 308
6.4 案例研究:邮政编码查询 310
本章小结 316
自测题 316
习题 318
编程项目 321
第7章 列表 323
7.1 列表基础知识 323
7.1.1 创建列表 324
7.1.2 访问列表元素 326
7.1.3 遍历列表 330
7.1.4 完整列表程序 332
7.1.5 随机访问 335
7.1.6 列表方法 336
7.2 列表遍历算法 342
7.2.1 列表作为参数 342
7.2.2 列表的查找 343
7.2.3 替换与删除值 347
7.2.4 列表的逆序 348
7.2.5 列表中数据的移动 352
7.2.6 循环嵌套算法 355
7.2.7 列表推导 356
7.3 引用语义 357
7.3.1 值与引用 357
7.3.2 修改列表参数 360
7.3.3 空值 361
7.3.4 可变性 363
7.3.5 元组 366
7.4 多维列表 371
7.4.1 矩形列表 371
7.4.2 锯齿状列表 373
7.4.3 像素列表 377
7.5 案例研究:本福德定律 381
7.5.1 统计值 382
7.5.2 完成程序 385
本章小结 389
自测题 390
习题 395
编程项目 397
第8章 字典与集合 399
8.1 字典的基本概念 399
8.1.1 创建字典 401
8.1.2 字典操作 404
8.1.3 遍历字典 406
8.1.4 字典排序 408
8.2 字典的高级应用 409
8.2.1 字典的统计 409
8.2.2 嵌套的数据集合 414
8.2.3 字典推导 417
8.3 集合 419
8.3.1 集合的基本概念 419
8.3.2 集合操作 422
8.3.3 集合效率 425
8.3.4 集合示例:彩票 427
本章小结 429
自测题 429
习题 433
编程项目 434
第9章 递归 436
9.1 递归思维 436
9.1.1 一个非编程的示例 436
9.1.2 从迭代到递归 438
9.1.3 递归解决方案的结构 441
9.1.4 反转文件 442
9.1.5 递归调用堆栈 444
9.2 递归函数和数据 449
9.2.1 整数的幂 449
9.2.2 最大公约数 451
9.2.3 爬虫 455
9.3 递归图形 459
9.3.1 Cantor集 459
9.3.2 Sierpinski三角形 461
9.4 递归回溯 464
9.4.1 向北/向东旅行 464
9.4.2 八皇后问题 469
9.4.3 在找到解后停止 474
9.5 案例研究:前缀计算器 477
9.5.1 中缀、前缀和后缀表示法 478
9.5.2 计算前缀表达式 478
9.5.3 完整程序 481
本章小结 483
自测题 484
习题 487
编程项目 490
第10章 搜索和排序 492
10.1 搜索和排序库 492
10.1.1 二分查找 493
10.1.2 排序 498
10.1.3 洗牌 499
10.2 程序复杂度 500
10.2.1 实证分析 502
10.2.2 复杂度类 507
10.3 实现搜索和排序的算法 509
10.3.1 顺序搜索 509
10.3.2 二分查找 510
10.3.3 递归二分查找 512
10.3.4 选择排序 514
10.4 案例研究:实现归并排序 516
10.4.1 拆分和合并列表 517
10.4.2 递归归并排序 519
10.4.3 运行性能 522
10.4.4 混合方法 524
本章小结 525
自测题 526
习题 529
编程项目 531
第11章 类与对象 532
11.1 面向对象编程 532
11.1.1 类和对象 533
11.1.2 日期对象 534
11.2 对象状态和行为 535
11.2.1 数据属性 535
11.2.2 初始化器 537
11.2.3 方法 540
11.2.4 访问器和赋值器 543
11.2.5 打印对象状态 546
11.2.6 对象相等与排序 547
11.3 封装 549
11.3.1 封装的目的 550
11.3.2 私有属性和属性方法 550
11.3.3 类不变性 555
11.4 案例研究:股票类设计 558
11.4.1 面向对象设计启发式 559
11.4.2 Stock属性和方法头 560
11.4.3 Stock方法和属性方法实现 562
本章小结 564
自测题 565
习题 566
编程项目 569
第12章 函数式编程 570
12.1 函数式编程的概念 570
12.1.1 副作用 571
12.1.2 一等函数 572
12.1.3 高阶函数 573
12.1.4 lambda表达式 575
12.2 数据集合的函数操作 578
12.2.1 map函数 579
12.2.2 filter函数 580
12.2.3 reduce函数 581
12.2.4 列表推导 584
12.3 函数闭包 585
12.3.1 生成器函数 588
12.3.2 惰性求值 591
12.3.3 可迭代对象 592
12.3.4 生成器表达式 593
12.4 案例研究:完美数值 594
12.4.1 求和 595
12.4.2 第五个完美数值 598
12.4.3 利用并发 599
本章小结 602
自测题 602
习题 603
编程项目 604
附录A Python摘要 605

推荐

车牌查询
桂ICP备20004708号-3