书籍详情
Python程序设计与算法思维
作者:(美)斯图尔特·里杰斯,马蒂·斯特普,艾利森·奥伯恩
出版社:机械工业出版社
出版时间:2020-06-01
ISBN:9787111655145
定价:¥139.00
购买这本书可以去
内容简介
《Python程序设计与算法思维》详尽地解释了Python语言的每个新概念和每个语法细节,具有良好的、规范的代码示例,注重问题求解,强调算法实践。案例教学由简单到复杂递进展开,以便于读者清晰地理解和掌握整个编程和求解的思路。该书还增加了函数式编程内容,使初学者可以应对未来高并发实时多核处理的程序设计。《Python程序设计与算法思维》对Python语言深入浅出、细致的讲解,以及课后大量的习题和编程实践,可以使初学者轻松掌握Python语言的精髓,并学以致用,以解决科学研究、工程实践中的实际问题,并切身体会程序设计之美。
作者简介
斯图尔特·里杰斯(Stuart Reges),华盛顿大学Paul G.Allen计算机科学与工程学院首席讲师。他是该校编程语言入门性课程的负责人,并参与本科课程的设计。在过去30年的职业生涯中,他还在斯坦福大学和亚利桑那大学担任过类似职位。1985年,因对斯坦福本科教育的杰出贡献而获得该校教学奖——“丁克尔斯皮尔奖”。2011年,获得了华盛顿大学杰世教学奖。他也是Building Java Programs:A Back to Basics Approach的作者。马蒂·斯特普(Marty Stepp),计算机教育工作者和软件开发人员,曾任教于斯坦福大学和华盛顿大学,教授编程入门、Web编程和软件工程等课程,也为微软和Facebook开发过软件。他也是Web Programming Step by Step、Building Java Programs:A Back to Basics Approach、Computing Fundamentals with c#等畅销书的合著者。艾利森·奥伯恩(Allison Obourn),亚利桑那大学计算机科学系高级讲师,她还曾在华盛顿大学Paul G.Allen计算机科学与工程学院担任讲师,长期从事编程入门和Web编程课程的教学。
目录
出版者的话
译者序
前言
第1章 Python编程简介
1.1 计算的基本概念
1.1.1 为何编程
1.1.2 硬件和软件
1.1.3 数字领域
1.1.4 编程的过程
1.1.5 为何选择Python
1.1.6 Python编程环境
1.2 一个完整的Python程序
1.2.1 打印输出
1.2.2 字符串文字(字符串)
1.2.3 转义序列
1.2.4 打印复杂图形
1.2.5 注释、空白和可读性
1.3 程序错误
1.3.1 语法错误
1.3.2 逻辑错误
1.4 程序分解
1.4.1 函数
1.4.2 控制流
1.4.3 标识符和关键字
1.4.4 调用其他函数的函数
1.4.5 运行时错误的例子
1.5 案例研究:绘图
1.5.1 结构化版本
1.5.2 没有冗余的终版本
1.5.3 执行流分析
本章小结
自测题
习题
编程项目
第2章 数据和确定循环
2.1 基本数据概念
2.1.1 数据类型
2.1.2 表达式
2.1.3 字面量
2.1.4 算术运算符
2.1.5 运算优先级
2.1.6 混合和转换类型
2.2 变量
2.2.1 使用变量的程序
2.2.2 自增-自减运算符
2.2.3 打印多个值
2.3 for循环
2.3.1 使用循环变量
2.3.2 关于循环范围的细节
2.3.3 字符串乘法与打印部分行
2.3.4 嵌套for循环
2.4 管理复杂性
2.4.1 作用域
2.4.2 伪代码
2.4.3 常量
2.5 案例研究:沙漏图
2.5.1 问题分解和伪代码
2.5.2 初始结构化版本
2.5.3 增加一个常量
本章小结
自测题
习题
编程项目
第3章 参数与图形
3.1 参数
3.1.1 参数的机制
3.1.2 参数的限制
3.1.3 多个参数
3.1.4 参数与常量
3.1.5 可选参数
3.2 返回值
3.2.1 math模块
3.2.2 random模块
3.2.3 定义返回值的函数
3.2.4 返回多个值
3.3 交互式程序
3.4 图形
3.4.1 DrawingPanel简介
3.4.2 画线和形状
3.4.3 颜色
3.4.4 使用循环画图
3.4.5 文本与字体
3.4.6 图像
3.4.7 画图过程分解
3.5 案例研究:抛轨迹
3.5.1 非结构化解决方案
3.5.2 结构化解决方案
3.5.3 图形版本
本章小结
自测题
习题
编程项目
第4章 条件执行
4.1 if/else语句
4.1.1 关系运算符
4.1.2 if/else语句嵌套
4.1.3 if/else语句分解
4.1.4 多个判别条件
4.2 累积算法
4.2.1 累积求和
4.2.2 求小/大值循环
4.2.3 使用if语句的累积求和
4.2.4 舍入误差
4.3 函数中的条件执行
4.3.1 前置条件和后置条件
4.3.2 抛出异常
4.3.3 回顾返回值
4.3.4 分支选择推理
4.4 字符串
4.4.1 字符串方法
4.4.2 按索引访问字符
4.4.3 字母和数值之间的转换
4.4.4 累积文本算法
4.5 案例研究:基础代谢率
4.5.1 单人非结构化BMR解决方案
4.5.2 双人非结构化BMR解决方案
4.5.3 双人结构化BMR解决方案
4.5.4 过程式设计启发式
本章小结
自测题
习题
编程项目
第5章 程序逻辑与不确定循环
5.1 while循环
5.1.1 寻找小因数的循环
5.1.2 循环的启动
5.2 栅栏算法
5.2.1 带if语句的栅栏循环
5.2.2 哨兵循环
5.2.3 带小/大值的哨兵循环
5.3 布尔逻辑
5.3.1 逻辑运算符
5.3.2 布尔变量与标志
5.3.3 谓词函数
5.3.4 布尔Zen
5.3.5 短路求值
5.4 健壮的程序
5.4.1 try/ecept语句
5.4.2 处理用户错误
5.5 断言与程序逻辑
5.5.1 针对断言的推理
5.5.2 一个详细的断言示例
5.6 案例研究:数字猜谜游戏
5.6.1 不带提示的初始版本
5.6.2 带提示的随机化版本
5.6.3 健壮的终版本
本章小结
自测题
习题
编程项目
第6章 文件处理
6.1 文件读取基础知识
6.1.1 数据和文件
6.1.2 在Python中读取文件
6.1.3 基于行的文件处理
6.1.4 文件结构与消耗式输入
6.1.5 提示输入文件
6.2 基于标记的处理
6.2.1 数值输入
6.2.2 处理非法输入
6.2.3 行与标记的混合使用
6.2.4 处理不同数量的标记
6.2.5 复杂的输入文件
6.3 高级文件处理
6.3.1 多行输入记录
6.3.2 文件输出
6.3.3 从网页中读取数据
6.4 案例研究:邮政编码查询
本章小结
自测题
习题
编程项目
第7章 列表
7.1 列表基础知识
7.1.1 创建列表
7.1.2 访问列表元素
7.1.3 遍历列表
7.1.4 完整列表程序
7.1.5 随机访问
7.1.6 列表方法
7.2 列表遍历算法
7.2.1 列表作为参数
7.2.2 列表的查找
7.2.3 替换与删除值
7.2.4 列表的逆序
7.2.5 列表中数据的移动
7.2.6 循环嵌套算法
7.2.7 列表推导
7.3 引用语义
7.3.1 值与引用
7.3.2 修改列表参数
7.3.3 空值
7.3.4 可变性
7.3.5 元组
7.4 多维列表
7.4.1 矩形列表
7.4.2 锯齿状列表
7.4.3 像素列表
7.5 案例研究:本福德定律
7.5.1 统计值
7.5.2 完成程序
本章小结
自测题
习题
编程项目
第8章 字典与集合
8.1 字典的基本概念
8.1.1 创建字典
8.1.2 字典作
8.1.3 遍历字典
8.1.4 字典排序
8.2 字典的高级应用
8.2.1 字典的统计
8.2.2 嵌套的数据集合
8.2.3 字典推导
8.3 集合
8.3.1 集合的基本概念
8.3.2 集合作
8.3.3 集合效率
8.3.4 集合示例:彩票
本章小结
自测题
习题
编程项目
第9章 递归
9.1 递归思维
9.1.1 一个非编程的示例
9.1.2 从迭代到递归
9.1.3 递归解决方案的结构
9.1.4 反转文件
9.1.5 递归调用堆栈
9.2 递归函数和数据
9.2.1 整数的幂
9.2.2 大公约数
9.2.3 目录爬虫
9.3 递归图形
9.3.1 Cantor集
9.3.2 Sierpinski三角形
9.4 递归回溯
9.4.1 向北/向东旅行
9.4.2 八皇后问题
9.4.3 在找到解后停止
9.5 案例研究:前缀计算器
9.5.1 中缀、前缀和后缀表示法
9.5.2 计算前缀表达式
9.5.3 完整程序
本章小结
自测题
习题
编程项目
第10章 搜索和排序
10.1 搜索和排序库
10.1.1 二分查找
10.1.2 排序
10.1.3 洗牌
10.2 程序复杂度
10.2.1 实证分析
10.2.2 复杂度类
10.3 实现搜索和排序的算法
10.3.1 顺序搜索
10.3.2 二分查找
10.3.3 递归二分查找
10.3.4 选择排序
10.4 案例研究:实现归并排序
10.4.1 拆分和合并列表
10.4.2 递归归并排序
10.4.3 运行性能
10.4.4 混合方法
本章小结
自测题
习题
编程项目
第11章 类与对象
11.1 面向对象编程
11.1.1 类和对象
11.1.2 日期对象
11.2 对象状态和行为
11.2.1 数据属性
11.2.2 初始化器
11.2.3 方法
11.2.4 访问器和赋值器
11.2.5 打印对象状态
11.2.6 对象相等与排序
11.3 封装
11.3.1 封装的目的
11.3.2 私有属性和属性方法
11.3.3 类不变性
11.4 案例研究:股票类设计
11.4.1 面向对象设计启发式
11.4.2 Stock属性和方法头
11.4.3 Stock方法和属性方法实现
本章小结
自测题
习题
编程项目
第12章 函数式编程
12.1 函数式编程的概念
12.1.1 副作用
12.1.2 一等函数
12.1.3 高阶函数
12.1.4 lambda表达式
12.2 数据集合的函数作
12.2.1 map函数
12.2.2 filter函数
12.2.3 reduce函数
12.2.4 列表推导
12.3 函数闭包
12.3.1 生成器函数
12.3.2 惰性求值
12.3.3 可迭代对象
12.3.4 生成器表达式
12.4 案例研究:数值
12.4.1 求和
12.4.2 五个数值
12.4.3 利用并发
本章小结
自测题
习题
编程项目
附录A Python摘要
译者序
前言
第1章 Python编程简介
1.1 计算的基本概念
1.1.1 为何编程
1.1.2 硬件和软件
1.1.3 数字领域
1.1.4 编程的过程
1.1.5 为何选择Python
1.1.6 Python编程环境
1.2 一个完整的Python程序
1.2.1 打印输出
1.2.2 字符串文字(字符串)
1.2.3 转义序列
1.2.4 打印复杂图形
1.2.5 注释、空白和可读性
1.3 程序错误
1.3.1 语法错误
1.3.2 逻辑错误
1.4 程序分解
1.4.1 函数
1.4.2 控制流
1.4.3 标识符和关键字
1.4.4 调用其他函数的函数
1.4.5 运行时错误的例子
1.5 案例研究:绘图
1.5.1 结构化版本
1.5.2 没有冗余的终版本
1.5.3 执行流分析
本章小结
自测题
习题
编程项目
第2章 数据和确定循环
2.1 基本数据概念
2.1.1 数据类型
2.1.2 表达式
2.1.3 字面量
2.1.4 算术运算符
2.1.5 运算优先级
2.1.6 混合和转换类型
2.2 变量
2.2.1 使用变量的程序
2.2.2 自增-自减运算符
2.2.3 打印多个值
2.3 for循环
2.3.1 使用循环变量
2.3.2 关于循环范围的细节
2.3.3 字符串乘法与打印部分行
2.3.4 嵌套for循环
2.4 管理复杂性
2.4.1 作用域
2.4.2 伪代码
2.4.3 常量
2.5 案例研究:沙漏图
2.5.1 问题分解和伪代码
2.5.2 初始结构化版本
2.5.3 增加一个常量
本章小结
自测题
习题
编程项目
第3章 参数与图形
3.1 参数
3.1.1 参数的机制
3.1.2 参数的限制
3.1.3 多个参数
3.1.4 参数与常量
3.1.5 可选参数
3.2 返回值
3.2.1 math模块
3.2.2 random模块
3.2.3 定义返回值的函数
3.2.4 返回多个值
3.3 交互式程序
3.4 图形
3.4.1 DrawingPanel简介
3.4.2 画线和形状
3.4.3 颜色
3.4.4 使用循环画图
3.4.5 文本与字体
3.4.6 图像
3.4.7 画图过程分解
3.5 案例研究:抛轨迹
3.5.1 非结构化解决方案
3.5.2 结构化解决方案
3.5.3 图形版本
本章小结
自测题
习题
编程项目
第4章 条件执行
4.1 if/else语句
4.1.1 关系运算符
4.1.2 if/else语句嵌套
4.1.3 if/else语句分解
4.1.4 多个判别条件
4.2 累积算法
4.2.1 累积求和
4.2.2 求小/大值循环
4.2.3 使用if语句的累积求和
4.2.4 舍入误差
4.3 函数中的条件执行
4.3.1 前置条件和后置条件
4.3.2 抛出异常
4.3.3 回顾返回值
4.3.4 分支选择推理
4.4 字符串
4.4.1 字符串方法
4.4.2 按索引访问字符
4.4.3 字母和数值之间的转换
4.4.4 累积文本算法
4.5 案例研究:基础代谢率
4.5.1 单人非结构化BMR解决方案
4.5.2 双人非结构化BMR解决方案
4.5.3 双人结构化BMR解决方案
4.5.4 过程式设计启发式
本章小结
自测题
习题
编程项目
第5章 程序逻辑与不确定循环
5.1 while循环
5.1.1 寻找小因数的循环
5.1.2 循环的启动
5.2 栅栏算法
5.2.1 带if语句的栅栏循环
5.2.2 哨兵循环
5.2.3 带小/大值的哨兵循环
5.3 布尔逻辑
5.3.1 逻辑运算符
5.3.2 布尔变量与标志
5.3.3 谓词函数
5.3.4 布尔Zen
5.3.5 短路求值
5.4 健壮的程序
5.4.1 try/ecept语句
5.4.2 处理用户错误
5.5 断言与程序逻辑
5.5.1 针对断言的推理
5.5.2 一个详细的断言示例
5.6 案例研究:数字猜谜游戏
5.6.1 不带提示的初始版本
5.6.2 带提示的随机化版本
5.6.3 健壮的终版本
本章小结
自测题
习题
编程项目
第6章 文件处理
6.1 文件读取基础知识
6.1.1 数据和文件
6.1.2 在Python中读取文件
6.1.3 基于行的文件处理
6.1.4 文件结构与消耗式输入
6.1.5 提示输入文件
6.2 基于标记的处理
6.2.1 数值输入
6.2.2 处理非法输入
6.2.3 行与标记的混合使用
6.2.4 处理不同数量的标记
6.2.5 复杂的输入文件
6.3 高级文件处理
6.3.1 多行输入记录
6.3.2 文件输出
6.3.3 从网页中读取数据
6.4 案例研究:邮政编码查询
本章小结
自测题
习题
编程项目
第7章 列表
7.1 列表基础知识
7.1.1 创建列表
7.1.2 访问列表元素
7.1.3 遍历列表
7.1.4 完整列表程序
7.1.5 随机访问
7.1.6 列表方法
7.2 列表遍历算法
7.2.1 列表作为参数
7.2.2 列表的查找
7.2.3 替换与删除值
7.2.4 列表的逆序
7.2.5 列表中数据的移动
7.2.6 循环嵌套算法
7.2.7 列表推导
7.3 引用语义
7.3.1 值与引用
7.3.2 修改列表参数
7.3.3 空值
7.3.4 可变性
7.3.5 元组
7.4 多维列表
7.4.1 矩形列表
7.4.2 锯齿状列表
7.4.3 像素列表
7.5 案例研究:本福德定律
7.5.1 统计值
7.5.2 完成程序
本章小结
自测题
习题
编程项目
第8章 字典与集合
8.1 字典的基本概念
8.1.1 创建字典
8.1.2 字典作
8.1.3 遍历字典
8.1.4 字典排序
8.2 字典的高级应用
8.2.1 字典的统计
8.2.2 嵌套的数据集合
8.2.3 字典推导
8.3 集合
8.3.1 集合的基本概念
8.3.2 集合作
8.3.3 集合效率
8.3.4 集合示例:彩票
本章小结
自测题
习题
编程项目
第9章 递归
9.1 递归思维
9.1.1 一个非编程的示例
9.1.2 从迭代到递归
9.1.3 递归解决方案的结构
9.1.4 反转文件
9.1.5 递归调用堆栈
9.2 递归函数和数据
9.2.1 整数的幂
9.2.2 大公约数
9.2.3 目录爬虫
9.3 递归图形
9.3.1 Cantor集
9.3.2 Sierpinski三角形
9.4 递归回溯
9.4.1 向北/向东旅行
9.4.2 八皇后问题
9.4.3 在找到解后停止
9.5 案例研究:前缀计算器
9.5.1 中缀、前缀和后缀表示法
9.5.2 计算前缀表达式
9.5.3 完整程序
本章小结
自测题
习题
编程项目
第10章 搜索和排序
10.1 搜索和排序库
10.1.1 二分查找
10.1.2 排序
10.1.3 洗牌
10.2 程序复杂度
10.2.1 实证分析
10.2.2 复杂度类
10.3 实现搜索和排序的算法
10.3.1 顺序搜索
10.3.2 二分查找
10.3.3 递归二分查找
10.3.4 选择排序
10.4 案例研究:实现归并排序
10.4.1 拆分和合并列表
10.4.2 递归归并排序
10.4.3 运行性能
10.4.4 混合方法
本章小结
自测题
习题
编程项目
第11章 类与对象
11.1 面向对象编程
11.1.1 类和对象
11.1.2 日期对象
11.2 对象状态和行为
11.2.1 数据属性
11.2.2 初始化器
11.2.3 方法
11.2.4 访问器和赋值器
11.2.5 打印对象状态
11.2.6 对象相等与排序
11.3 封装
11.3.1 封装的目的
11.3.2 私有属性和属性方法
11.3.3 类不变性
11.4 案例研究:股票类设计
11.4.1 面向对象设计启发式
11.4.2 Stock属性和方法头
11.4.3 Stock方法和属性方法实现
本章小结
自测题
习题
编程项目
第12章 函数式编程
12.1 函数式编程的概念
12.1.1 副作用
12.1.2 一等函数
12.1.3 高阶函数
12.1.4 lambda表达式
12.2 数据集合的函数作
12.2.1 map函数
12.2.2 filter函数
12.2.3 reduce函数
12.2.4 列表推导
12.3 函数闭包
12.3.1 生成器函数
12.3.2 惰性求值
12.3.3 可迭代对象
12.3.4 生成器表达式
12.4 案例研究:数值
12.4.1 求和
12.4.2 五个数值
12.4.3 利用并发
本章小结
自测题
习题
编程项目
附录A Python摘要
猜您喜欢