8.1计算思维

码农老关【关东升】 2023-01-12 14:22:38

课时名称课时知识点
8.1计算思维8.1计算思维
...全文
41 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
内容简介 · · · · · · 本书以培养读者以计算机科学家一样的思维方式来理解Python语言编程。贯穿全书的主体是如何思考、设计、开发的方法,而具体的编程语言,只是提供了一个具体场景方便介绍的媒介。 全书共21章,详细介绍Python语言编程的方方面面。本书从基本的编程概念开始讲起,包括语言的语法和语义,而且每个编程概念都有清晰的定义,引领读者循序渐进地学习变量、表达式、语句、函数和数据结构。书中还探讨了如何处理文件和数据库,如何理解对象、方法和面向对象编程,如何使用调试技巧来修正语法错误、运行时错误和语义错误。每一章都配有术语表和练习题,方便读者巩固所学的知识和技巧。此外,每一章都抽出一节来讲解如何调试程序。作者针对每章所专注的语言特性,或者相关的开发问题,总结了调试的方方面面。 本书的第2版与第1版相比,做了很多更新,将编程语言从Python 2升级成Python 3,并修改了很多示例和练习,增加了新的章节,更全面地介绍Python语言。 这是一本实用的学习指南,适合没有Python编程经验的程序员阅读,也适合高中或大学的学生、Python爱好者及需要了解编程基础的人阅读。对于首次接触程序设计的人来说,是一本不可多得的佳作。 作者简介 · · · · · · [美] 艾伦 B. 唐尼(Allen B. Downey) Allen Downey是欧林工程学院的计算机科学教授,曾任教于韦尔斯利学院、科尔比学院和加州大学伯克利分校。他是加州大学伯克利分校的计算机科学博士,并拥有MIT的硕士和学士学位。 译者介绍 赵普明 毕业清华大学计算机系,从事软件开发行业近10年。从2.3版本开始接触Python,工作中使用Python编写脚本程序,用于快速原型构建以及日志计算等日常作业;业余时,作为一个编程语言爱好者,对D、Kotlin、Lua、Clojure、Scala、Julia、Go等语言均有了解,但至今仍为Python独特的风格、简洁的设计而惊叹。 目录 · · · · · · 第1章 程序之道 1 1.1 什么是程序 1 1.2 运行Python 2 1.3 第一个程序 3 1.4 算术操作符 3 1.5 值和类型 4 1.6 形式语言和自然语言 5 1.7 调试 6 1.8 术语表 7 1.9 练习 8 第2章 变量、表达式和语句 9 2.1 赋值语句 9 2.2 变量名称 9 2.3 表达式和语句 10 2.4 脚本模式 11 2.5 操作顺序 12 2.6 字符串操作 13 2.7 注释 13 2.8 调试 14 2.9 术语表 15 2.10 练习 16 第3章 函数 17 3.1 函数调用 17 3.2 数学函数 18 3.3 组合 19 3.4 添加新函数 19 3.5 定义和使用 21 3.6 执行流程 21 3.7 形参和实参 22 3.8 变量和形参是局部的 23 3.9 栈图 23 3.10 有返回值函数和无返回值函数 24 3.11 为什么要有函数 25 3.12 调试 26 3.13 术语表 26 3.14 练习 27 第4章 案例研究:接口设计 30 4.1 turtle模块 30 4.2 简单重复 31 4.3 练习 32 4.4 封装 33 4.5 泛化 34 4.6 接口设计 34 4.7 重构 35 4.8 一个开发计划 36 4.9 文档字符串 37 4.10 调试 38 4.11 术语表 38 4.12 练习 39 第5章 条件和递归 41 5.1 向下取整除法操作符和求模操作符 41 5.2 布尔表达式 42 5.3 逻辑操作符 42 5.4 条件执行 43 5.5 选择执行 43 5.6 条件链 44 5.7 嵌套条件 44 5.8 递归 45 5.9 递归函数的栈图 46 5.10 无限递归 47 5.11 键盘输入 47 5.12 调试 48 5.13 术语表 49 5.14 练习 50 第6章 有返回值的函数 53 6.1 返回值 53 6.2 增量开发 54 6.3 组合 56 6.4 布尔函数 57 6.5 再谈递归 58 6.6 坚持信念 59 6.7 另一个示例 60 6.8 检查类型 60 6.9 调试 61 6.10 术语表 63 6.11 练习 63 第7章 迭代 65 7.1 重新赋值 65 7.2 更新变量 66 7.3 while语句 66 7.4 break语句 68 7.5 平方根 68 7.6 算法 70 7.7 调试 70 7.8 术语表 71 7.9 练习 71 第8章 字符串 73 8.1 字符串是一个序列 73 8.2 len 74 8.3 使用for循环进行遍历 74 8.4 字符串切片 75 8.5 字符串是不可变的 76 8.6 搜索 77 8.7 循环和计数 77 8.8 字符串方法 78 8.9 操作符in 79 8.10 字符串比较 79 8.11 调试 80 8.12 术语表 82 8.13 练习 82 第9章 案例分析:文字游戏 85 9.1 读取单词列表 85 9.2 练习 86 9.3 搜索 87 9.4 使用下标循环 88 9.5 调试 90 9.6 术语表 90 9.7 练习 91 第10章 列表 93 10.1 列表是一个序列 93 10.2 列表是可变的 94 10.3 遍历一个列表 95 10.4 列表操作 95 10.5 列表切片 96 10.6 列表方法 96 10.7 映射、过滤和化简 97 10.8 删除元素 98 10.9 列表和字符串 99 10.10 对象和值 100 10.11 别名 101 10.12 列表参数 102 10.13 调试 103 10.14 术语表 104 10.15 练习 105 第11章 字典 108 11.1 字典是一种映射 108 11.2 使用字典作为计数器集合 110 11.3 循环和字典 111 11.4 反向查找 111 11.5 字典和列表 112 11.6 备忘 114 11.7 全局变量 115 11.8 调试 117 11.9 术语表 118 11.10 练习 119 第12章 元组 121 12.1 元组是不可变的 121 12.2 元组赋值 122 12.3 作为返回值的元组 123 12.4 可变长参数元组 124 12.5 列表和元组 124 12.6 字典和元组 126 12.7 序列的序列 127 12.8 调试 128 12.9 术语表 129 12.10 练习 129 第13章 案例研究:选择数据结构 132 13.1 单词频率分析 132 13.2 随机数 133 13.3 单词直方图 134 13.4 最常用的单词 135 13.5 可选形参 136 13.6 字典减法 137 13.7 随机单词 138 13.8 马尔可夫分析 138 13.9 数据结构 140 13.10 调试 141 13.11 术语表 142 13.12 练习 143 第14章 文件 144 14.1 持久化 144 14.2 读和写 144 14.3 格式操作符 145 14.4 文件名和路径 146 14.5 捕获异常 147 14.6 数据库 148 14.7 封存 149 14.8 管道 150 14.9 编写模块 151 14.10 调试 152 14.11 术语表 152 14.12 练习 153 第15章 类和对象 155 15.1 用户定义类型 155 15.2 属性 156 15.3 矩形 157 15.4 作为返回值的实例 158 15.5 对象是可变的 159 15.6 复制 159 15.7 调试 161 15.8 术语表 161 15.9 练习 162 第16章 类和函数 163 16.1 时间 163 16.2 纯函数 164 16.3 修改器 165 16.4 原型和计划 166 16.5 调试 167 16.6 术语表 168 16.7 练习 168 第17章 类和方法 170 17.1 面向对象特性 170 17.2 打印对象 171 17.3 另一个示例 172 17.4 一个更复杂的示例 173 17.5 init方法 173 17.6 _ _str_ _方法 174 17.7 操作符重载 175 17.8 基于类型的分发 175 17.9 多态 177 17.10 接口和实现 177 17.11 调试 178 17.12 术语表 179 17.13 练习 179 第18章 继承 181 18.1 卡片对象 181 18.2 类属性 182 18.3 对比卡牌 183 18.4 牌组 184 18.5 打印牌组 185 18.6 添加、删除、洗牌和排序 185 18.7 继承 186 18.8 类图 188 18.9 数据封装 189 18.10 调试 190 18.11 术语表 191 18.12 练习 191 第19章 Python拾珍 194 19.1 条件表达式 194 19.2 列表理解 195 19.3 生成器表达式 196 19.4 any和all 197 19.5 集合 197 19.6 计数器 199 19.7 defaultdict 200 19.8 命名元组 201 19.9 收集关键词参数 202 19.10 术语表 203 19.11 练习 203 第20章 调试 205 20.1 语法错误 205 20.2 运行时错误 207 20.2.1 我的程序什么都不做 207 20.2.2 我的程序卡死了 207 20.2.3 无限循环 208 20.2.4 无限递归 208 20.2.5 执行流程 208 20.2.6 当我运行程序,会得到一个异常 209 20.2.7 我添加了太多print语句,被输出淹没了 210 20.3 语义错误 210 20.3.1 我的程序运行不正确 211 20.3.2 我有一个巨大而复杂的表达式,而它和我预料的不同 211 20.3.3 我有一个函数,返回值和预期不同 212 20.3.4 我真的真的卡住了,我需要帮助 212 20.3.5 不行,我真的需要帮助 212 第21章 算法分析 214 21.1 增长量级 215 21.2 Python基本操作的分析 217 21.3 搜索算法的分析 218 21.4 散列表 219 21.5 术语表 223 译后记 224
第1章 贝叶斯定理 1 1.1 条件概率 1 1.2 联合概率 2 1.3 曲奇饼问题 2 1.4 贝叶斯定理 3 1.5 历时诠释 4 1.6 M&M豆问题 5 1.7 Monty Hall难题 6 1.8 讨论 8 第2章 统计计算 9 2.1 分布 9 2.2 曲奇饼问题 10 2.3 贝叶斯框架 11 2.4 Monty Hall难题 12 2.5 封装框架 13 2.6 M&M豆问题 14 2.7 讨论 15 2.8 练习 16 第3章 估计 17 3.1 骰子问题 17 3.2 火车头问题 18 3.3 怎样看待先验概率? 20 3.4 其他先验概率 21 3.5 置信区间 23 3.6 累积分布函数 23 3.7 德军坦克问题 24 3.8 讨论 24 3.9 练习 25 第4章 估计进阶 27 4.1 欧元问题 27 4.2 后验概率的概述 28 4.3 先验概率的湮没 29 4.4 优化 31 4.5 Beta分布 32 4.6 讨论 34 4.7 练习 34 第5章 胜率和加数 37 5.1 胜率 37 5.2 贝叶斯定理的胜率形式 38 5.3 奥利弗的血迹 39 5.4 加数 40 5.5 最大化 42 5.6 混合分布 45 5.7 讨论 47 第6章 决策分析 49 6.1 “正确的价格”问题 49 6.2 先验概率 50 6.3 概率密度函数 50 6.4 PDF的表示 51 6.5 选手建模 53 6.6 似然度 55 6.7 更新 55 6.8 最优出价 57 6.9 讨论 59 第7章 预测 61 7.1 波士顿棕熊队问题 61 7.2 泊松过程 62 7.3 后验 63 7.4 进球分布 64 7.5 获胜的概率 66 7.6 突然死亡法则 66 7.7 讨论 68 7.8 练习 69 第8章 观察者的偏差 71 8.1 红线问题 71 8.2 模型 71 8.3 等待时间 73 8.4 预测等待时间 75 8.5 估计到达率 78 8.6 消除不确定性 80 8.7 决策分析 81 8.8 讨论 83 8.9 练习 84 第9章 二维问题 85 9.1 彩弹 85 9.2 Suite对象 85 9.3 三角学 87 9.4 似然度 88 9.5 联合分布 89 9.6 条件分布 90 9.7 置信区间 91 9.8 讨论 93 9.9 练习 94 第10章 贝叶斯近似计算 95 10.1 变异性假说 95 10.2 均值和标准差 96 10.3 更新 98 10.4 CV的后验分布 98 10.5 数据下溢 99 10.6 对数似然 100 10.7 一个小的优化 101 10.8 ABC(近似贝叶斯计算) 102 10.9 估计的可靠性 104 10.10 谁的变异性更大? 105 10.11 讨论 107 10.12 练习 108 第11章 假设检验 109 11.1 回到欧元问题 109 11.2 来一个公平的对比 110 11.3 三角前验 111 11.4 讨论 112 11.5 练习 113 第12章 证据 115 12.1 解读SAT成绩 115 12.2 比例得分SAT 115 12.3 先验 116 12.4 后验 117 12.5 一个更好的模型 119 12.6 校准 121 12.7 效率的后验分布 122 12.8 预测分布 123 12.9 讨论 124 第13章 模拟 127 13.1 肾肿瘤的问题 127 13.2 一个简化模型 128 13.3 更普遍的模型 130 13.4 实现 131 13.5 缓存联合分布 132 13.6 条件分布 133 13.7 序列相关性 135 13.8 讨论 138 第14章 层次化模型 139 14.1 盖革计数器问题 139 14.2 从简单的开始 140 14.3 分层模型 141 14.4 一个小优化 142 14.5 抽取后验 142 14.6 讨论 144 14.7 练习 144 第15章 处理多维问题 145 15.1 脐部细菌 145 15.2 狮子,老虎和熊 145 15.3 分层版本 148 15.4 随机抽样 149 15.5 优化 150 15.6 堆叠的层次结构 151 15.7 另一个问题 153 15.8 还有工作要做 154 15.9 肚脐数据 156 15.10 预测分布 158 15.11 联合后验 161 15.12 覆盖 162 15.13 讨论 164
前言 第1章 地理模型的概念、特点、功能与分类 1.1 地理模型的概念 1.1.1 模型 1.1.2 地理模型 1.2 地理模型的特点 1.3 地理模型的功能 1.3.1 认识地理问题的桥梁 1.3.2 地理科学发现的工具 1.3.3 综合研究的功能 1.4 地理模型的分类 思考题 参考文献 第2章 地理建模的思维导向与原则 2.1 地理建模的思维导向 2.2 地理建模的基本原则 思考题 参考文献 第3章 地理模型建立与应用的若干问题 3.1 建立地理模型的基本步骤 3.2 建立地理模型常用的数学方法 3.3 地理模型的应用方面 3.4 建立与应用地理模型应该注意的问题 思考题 参考文献 第4章 地理建模方法概述 4.1 数据分析法 4.1.1 探索性数据分析 4.1.2 数据分析的地理建模实例 4.2 机理分析法 4.2.1 结构分析法 4.2.2 功能分析法 4.2.3 过程分析法 4.2.4 实例:地理过程中的人类活动作用 4.3 量纲分析法 4.3.1 量纲与基本量纲 4.3.2 量纲齐次性原则与相似定律 4.3.3 地理相似准则 4.4 类比分析法 4.4.1 科学发现中的类比分析法 4.4.2 类比法的地理建模实例 4.5 仿真模拟方法 思考题 参考文献 第5章 非确定型建模方法 5.1 经典统计建模方法 5.1.1 统计检验法 5.1.2 相关分析法 5.1.3 回归分析法 5.1.4 主成分分析法 5.1.5 聚类分析法 5.2 空间统计建模方法 5.2.1 空间自相关分析 5.2.2 空间计量模型 5.3 地统计建模方法 5.3.1 地统计方法的基本原理 5.3.2 应用实例 5.4 模糊数学建模法 5.4.1 模糊数学基本知识 5.4.2 模糊聚类方法 5.4.3 模糊综合评判方法 思考题 参考文献 第6章 运筹决策建模方法 6.1 线性规划方法 6.1.1 线性规划的数学模型 6.1.2 线性规划的标准形式 6.1.3 线性规划的解及其性质 6.1.4 线性规划问题的求解方法——单纯形法 6.1.5 应用实例:农场种植计划模型 6.2 目标规划方法 6.2.1 目标规划模型 6.2.2 求解目标规则的单纯形方法 6.2.3 目标规划模型实例:土地利用规划 6.3 网络分析方法 6.3.1 地理网络的测度 6.3.2 最短路径问题 6.3.3 选址问题 6.3.4 最大流问题及其求解方法 6.3.5 最小费用流及其求解方法 6.4 ahp决策分析方法 6.4.1 ahp决策分析的基本原理与计算方法 6.4.2 应用实例:扶贫开发战略决策定量分析 思考题 参考文献 第7章 信息反馈与系统仿真方法 7.1 控制论与信息反馈方法 7.1.1 几个基本概念 7.1.2 地理系统动态的控制论描述 7.1.3 建模实例:可更新资源的最优利用策略 7.2 灰色系统方法 7.2.1 灰色关联分析方法 7.2.2 灰色预测方法 7.2.3 灰色系统建模方法 7.3 系统动力学方法 7.3.1 系统动力学建模的基本原理 7.3.2 系统动力学建模实例:国土资源约束下的区域发展过程 思考题 参考文献 第8章 非线性分析方法 8.1 分形理论建模方法 8.1.1 分形理论简介 8.1.2 分形理论的地理建模实例 8.2 小波分析建模方法 8.2.1 小波分析理论简介 8.2.2 小波分析方法的地理建模实例 8.3 人工神经网络建模方法 8.3.1 人工神经网络简介 8.3.2 人工神经网络方法的地理建模实例 思考题 参考文献 第9章 地理建模分析中常用的软件 9.1 SPSS及相关软件在地理建模中的应用 9.1.1 回归分析 9.1.2 因子分析 9.1.3 聚类分析 9.1.4 SPSS的其他分析功能 9.1.5 其他相关软件简介 9.2 Matlab软件在地理建模中的应用 9.2.1 Matlab主工具箱(matlab main toolbox) 9.2.2 统计工具箱(statistics toolbox) 9.3 Arcgis和Geoda软件在地统计建模方面的应用 9.3.1 Arcgis地统计模块的应用 9.3.2 Geoda的应用 参考文献

1

社区成员

发帖
与我相关
我的任务
社区描述
一个20年的老程序员、老师、作家。 熟悉Java、Kotlin、Python、iOS、Android、游戏开发。参与设计和开发北京市公交一卡通百亿级大型项目,金融系统微博等移动客户端项目。著有《iOS开发指南》等40多部图书。
社区管理员
  • 码农老关【关东升】
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧