作者 |
[美]布兰德利·N. 米勒(Bradley N. Miller) 大卫·L. 拉农(David L. Ranum) 朱莉·安德森(Julie Anderson) |
丛书名 |
计算机科学丛书 |
出版社 |
机械工业出版社 |
ISBN |
9787111685166 |
简要 |
简介 |
内容简介书籍计算机书籍 本书采用基于案例的学习方法,在不同应用场景下以问题求解为引导讲授Python程序设计,涵盖密码学、图像处理、天文学和生物信息学等领域。第3版更新至Python 3.8,更加强调动手实践,每一章都围绕一个实战项目展开讨论,并包含大量的编程练习题。全书在应用场景中螺旋式引入解决问题所必需的Python语法知识和编程方法,从而通过不断巩固和拓展所学知识,进一步培养读者的问题求解能力。本书适合作为高等院校计算机相关专业学生第yi门程序设计课程的教材或参考书,也可作为Python初学者的入门读物。 |
目录 |
出版者的话 译者序 前言 第1章 Python导论 1 1.1 本章目标 1 1.2 什么是计算机科学 1 1.3 为什么要学习计算机科学 2 1.3.1 计算机科学的日常应用 2 1.3.2 计算机科学的重要性 3 1.4 问题求解的策略 3 1.5 Python概述 5 1.5.1 基本元素 6 1.5.2 命名对象 10 1.5.3 抽象 15 1.5.4 循环 22 1.6 本章小结 28 关键术语 28 Python关键字 29 编程练习题 29 第2章 πthon:估算圆周率的值 30 2.1 本章目标 30 2.2 圆周率是什么 30 2.3 有关math模块的进一步讨论 31 2.4 阿基米德方法 32 2.4.1 Python实现 33 2.4.2 开发一个计算圆周率pi的函数 34 2.5 累加器估算法 36 2.5.1 累加器模式 36 2.5.2 项的总和:莱布尼茨公式 37 2.5.3 项的乘积:沃利斯公式 39 2.6 蒙特卡罗模拟 41 2.6.1 布尔表达式 43 2.6.2 复合布尔表达式和逻辑运算符 44 2.6.3 选择语句 45 2.6.4 实现模拟 48 2.6.5 使用图形可视化结果 50 2.7 本章小结 53 关键术语 53 Python关键字、模块和命令 53 编程练习题 54 第3章 密码以及其他奥秘 55 3.1 本章目标 55 3.2 字符串数据类型 55 3.2.1 拼接 56 3.2.2 重复 56 3.2.3 索引 57 3.2.4 字符串切片 58 3.2.5 字符串搜索 59 3.2.6 字符串方法 60 3.2.7 字符函数 62 3.3 编码消息和解码消息 64 3.4 置换加密算法 64 3.4.1 使用置换进行加密 64 3.4.2 解密置换后的消息 66 3.4.3 读取用户输入 68 3.5 替换加密算法 69 3.6 创建密钥 71 3.7 维吉尼亚加密算法 76 3.8 本章小结 80 关键术语 81 Python关键字、函数和常量 81 编程练习题 82 第4章 Python集合导论 83 4.1 本章目标 83 4.2 什么是数据 83 4.3 存储用于处理的数据 83 4.3.1 再论字符串 83 4.3.2 列表 85 4.4 计算数据的统计量 90 4.4.1 简单离散度度量 90 4.5 中心趋势度量 92 4.5.1 均值 92 4.5.2 中值 93 4.5.3 众数 95 4.6 频率分布 100 4.6.1 使用字典计算频率分布表 100 4.6.2 不使用字典计算频率分布表 101 4.6.3 可视化频率分布 103 4.7 离散度:标准差 105 4.8 本章小结 107 关键术语 107 Python关键字、函数和方法 107 编程练习题 108 第5章 大数据:文件输入和输出 109 5.1 本章目标 109 5.2 使用文件处理大数据集 109 5.2.1 文本文件 109 5.2.2 迭代文件中的文本行 111 5.2.3 写入文件 112 5.2.4 字符串格式化 113 5.2.5 其他文件读取方法 115 5.3 从互联网上读取数据 117 5.3.1 使用CSV文件 117 5.3.2 使用while循环处理数据 118 5.3.3 列表解析 121 5.3.4 从互联网上读取JSON数据 125 5.4 数据相关性 128 5.5 本章小结 129 关键术语 129 Python关键字和函数 130 编程练习题 130 第6章 图像处理 131 6.1 本章目标 131 6.2 什么是数字图像处理 131 6.2.1 RGB颜色模型 131 6.2.2 cImage模块 132 6.3 基本图像处理 136 6.3.1 图像负片 136 6.3.2 灰度图像 138 6.3.3 一个通用的解决方案:像素映射器 140 6.4 参数、参数传递和作用范围 143 6.4.1 通过赋值调用的参数传递 144 6.4.2 名称空间 145 6.4.3 调用函数和查找名称 148 6.4.4 模块和名称空间 150 6.5 高级图像处理 151 6.5.1 图像缩放 151 6.5.2 图像拉伸:另一种视角 153 6.5.3 翻转图像 156 6.5.4 边缘检测 158 6.6 本章小结 162 关键术语 163 Python关键字、函数和变量 163 编程练习题 163 第7章 数据挖掘:聚类分析 164 7.1 本章目标 164 7.2 什么是数据挖掘 164 7.3 聚类分析:一个简单的示例 164 7.4 在简单数据集上实现聚类分析 165 7.4.1 两点之间的距离 165 7.4.2 聚类和中心点 167 7.4.3 K-均值聚类分析算法 167 7.4.4 K-均值算法的实现 168 7.4.5 K-均值算法的实现(续) 172 7.5 实现聚类分析:地震数据 176 7.5.1 文件处理 176 7.5.2 可视化 178 7.6 聚类分析的缺陷及解决方法 179 7.7 本章小结 180 关键术语 180 Python关键字 181 编程练习题 181 第8章 密码分析学 182 8.1 本章目标 182 8.2 概述 182 8.3 破解围栏加密算法 182 8.3.1 使用字典检查结果 183 8.3.2 暴力破解法 184 8.3.3 一种围栏解密算法 186 8.4 破解替换加密算法 187 8.4.1 字母频率 187 8.4.2 密文频率分析 192 8.4.3 字母对分析 193 8.4.4 单词频率分析 199 8.4.5 偏词模式匹配 202 8.4.6 正则表达式总结 208 8.5 本章小结 209 关键术语 210 Python函数、方法和关键字 210 编程练习题 210 第9章 分形图形:自然界的几何学 211 9.1 本章目标 211 9.2 概述 211 9.3 递归程序 212 9.3.1 递归正方形 212 9.3.2 经典递归函数 214 9.3.3 绘制递归树 214 9.3.4 谢尔宾斯基三角形 216 9.3.5 谢尔宾斯基三角形的调用树 218 9.4 雪花、林登麦伊尔系统及其语法 219 9.4.1 L-系统 220 9.4.2 自动扩展生长规则 222 9.4.3 更先进的L-系统 223 9.5 本章小结 226 关键术语 226 编程练习题 226 第10章 天体 227 10.1 本章目标 227 10.2 概述 227 10.2.1 程序设计 227 10.2.2 面向对象的程序设计 228 10.2.3 Python类 228 10.3 设计和实现Planet类 229 10.3.1 构造方法 229 10.3.2 访问器方法 231 10.3.3 更改器方法 234 10.3.4 特殊方法 235 10.3.5 方法和self 238 10.3.6 方法存储和查找的细节 239 10.4 设计和实现Sun类 240 10.5 设计和实现太阳系 241 10.6 制作太阳系的动画 243 10.6.1 使用Turtle对象 243 10.6.2 行星轨道 247 10.6.3 实现 249 10.7 本章小结 252 关键术语 253 Python关键字和函数 253 编程练习题 253 第11章 模拟 254 11.1 本章目标 254 11.2 熊和鱼 254 11.3 什么是模拟 254 11.4 游戏规则 255 11.5 设计模拟 255 11.6 实现模拟 257 11.6.1 World类 257 11.6.2 Fish类 261 11.6.3 Bear类 265 11.6.4 主模拟函数 267 11.7 植物繁殖 269 11.8 继承机制 271 11.9 本章小结 271 关键术语 271 Python关键字和函数 271 编程练习题 271 第12章 继承 273 12.1 本章目标 273 12.2 概述 273 12.3 基本设计 274 12.4 基本实现 277 12.4.1 Canvas类 278 12.4.2 GeometricObject类 279 12.4.3 Point类 280 12.4.4 Line类 281 12.4.5 测试实现的代码 282 12.5 理解继承 283 12.6 局限性 285 12.7 改进实现 287 12.8 实现多边形 291 12.9 本章小结 293 关键术语 293 Python关键字、方法和装饰器 293 编程练习题 294 第13章 电子游戏 295 13.1 本章目标 295 13.2 概述 295 13.2.1 事件驱动编程 295 13.2.2 模拟事件循环 296 13.2.3 多线程事件循环 297 13.3 基于turtle的事件驱动编程 300 13.3.1 一个使用按键的简单蚀刻素描程序 300 13.3.2 使用鼠标单击放置turtle 303 13.3.3 弹跳的turtle 305 13.4 创建自己的电子游戏 309 13.4.1 LaserCannon类 310 13.4.2 BoundedTurtle类 312 13.4.3 Drone类 313 13.4.4 Bomb类 315 13.4.5 把所有代码片段整合在一起 315 13.5 本章小结 317 关键术语 317 Python关键字和装饰器 317 编程练习题 317 网络资源一 附录A 安装必需的软件 附录B Python快速参考 附录C turtle参考 附录D 部分“动手实践”参考答案 |