本书基于MIT(麻省理工学院)的一门课程写成,主要目标是帮助读者掌握并熟练使用各种计算技术。本书涵盖了Python的大部分特性,重点介绍如何使用Python 这门语言,共包含编程基础、Python程序设计语言、理解计算的关键概念、计算问题的解决技术等四个方面。本书将Python语言特性和编程方法贯穿全书,目的是帮助读者在学习Python的同时掌握如何使用计算来解决有趣的问题。
第1章 起步1
第2章 Python介绍6
2.1 Python的基本元素7
2.1.1 对象、表达式和数值类型8
2.1.2 变量和赋值9
2.1.3 IDLE11
2.2 分支程序12
2.3 字符串和输出14
2.4 循环16
第3章 一些简单的数值类程序19
3.1 穷举法19
3.2 for循环21
3.3 近似解和二分查找23
3.4 关于浮点数26
3.5 牛顿拉夫逊方法28
第4章 函数、作用域和规范抽象30
4.1 函数和作用域31
4.1.1 函数定义31
4.1.2 关键字参数和默认值32
4.1.3 作用域33
4.2 规范36
4.3 递归39
4.3.1 斐波那契数40
4.3.2 回文和分治42
4.4 全局变量44
4.5 模块45
4.6 文件47
第5章 结构化类型、可变性和高阶函数49
5.1 元组49
5.2 列表和可变性51
5.2.1 克隆55
5.2.2 列表解析56
5.3 函数对象57
5.4 字符串、元组和列表58
5.5 字典59
第6章 测试和调试63
6.1 测试63
6.1.1 黑盒测试64
6.1.2 白盒测试66
6.1.3 执行测试67
6.2 调试68
6.2.1 学习调试70
6.2.2 设计实验71
6.2.3 如果遇到阻碍73
6.2.4 找到“目标”错误之后74
第7章 异常和断言75
7.1 处理异常75
7.2 把异常当作控制流来使用78
7.3 断言81
第8章 类和面向对象编程82
8.1 抽象的数据类型和类82
8.1.1 使用抽象的数据类型来设计程序86
8.1.2 使用类来记录学生和教师86
8.2 继承88
8.2.1 多层继承90
8.2.2 替代法则92
8.3 封装和信息隐藏92
8.4 进阶实例:抵押贷款97
第9章 算法复杂度简介101
9.1 思考计算复杂度101
9.2 渐近表示104
9.3 一些重要的复杂度105
9.3.1 常数复杂度105
9.3.2 对数复杂度106
9.3.3 线性复杂度106
9.3.4 对数线性复杂度107
9.3.5 多项式复杂度107
9.3.6 指数复杂度108
9.3.7 复杂度对比110
第10章 一些简单的算法和数据结构112
10.1 搜索算法113
10.1.1 线性搜索和间接访问元素113
10.1.2 二分查找和利用假设114
10.2 排序算法117
10.2.1 归并排序118
10.2.2 把函数当做参数120
10.2.3 Python中的排序121
10.3 散列表122
第11章 绘图以及类的扩展内容126
11.1 使用PyLab绘图126
11.2 扩展实例:绘制抵押贷款131
第12章 随机算法、概率以及统计137
12.1 随机程序138
12.2 统计推断和模拟139
12.3 分布149
12.3.1 正态分布和置信水平151
12.3.2 均匀分布154
12.3.3 指数分布和几何分布154
12.3.4 本福德分布156
12.4 强队的获胜概率157
12.5 散列和碰撞160
第13章 随机游动和数据可视化163
13.1 醉汉游动163
13.2 有偏随机游动169
13.3 危机重重的田地175
第14章 蒙特卡罗模拟177
14.1 帕斯卡的问题178
14.2 过还是不过179
14.3 使用查表提高性能182
14.4 寻找π183
14.5 模拟模型的结束语187
第15章 理解实验数据189
15.1 弹簧的行为189
15.2 弹丸的行为196
15.2.1 决定系数198
15.2.2 使用计算模型199
15.3 拟合指数分布200
15.4 当理论缺失时203
第16章 谎言和统计205
16.1 垃圾输入只能产生垃圾输出205
16.2 图表会骗人206
16.3 与此谬误208
16.4 统计方法并不能代替数据209
16.5 抽样偏差210
16.6 语境问题211
16.7 当心外推法212
16.8 得克萨斯神枪手谬误213
16.9 百分比会说谎215
16.10 小心谨慎215
第17章 背包和图的最优化问题216
17.1 背包问题216
17.1.1 贪婪算法217
17.1.2 0/1背包问题的最优解法219
17.2 图的最优化问题222
17.2.1 一些典型的图论问题226
17.2.2 疾病传播和最小割227
17.2.3 最短路径、深度优先搜索和广度优先搜索227
第18章 动态规划233
18.1 斐波那契数列233
18.2 动态规划和0/1背包问题235
18.3 动态规划和分治241
第19章 机器学习简介242
19.1 特征向量244
19.2 距离度量245
19.3 聚类249
19.4 类型示例和聚类250
19.5 K-means聚类253
19.6 人造案例255
19.7 稍微真实一些的示例259
19.8 小结265
附录 Python 2.7快速参考266
Visual C++编程技巧精选集-(附光盘1张) 本书特色 本书特色*简单、*直观、*快捷的学习方式*实用,*经典、*新颖的编程主题多角度,多层次、多领域的开...
《无人零售:技术驱动商业变革》内容简介:本书分为上下两篇,上篇主要讲述了无人零售的三个核心问题:政策、技术、信息安全;下篇
《Python计算机视觉编程》内容简介:《python计算机视觉编程》是计算机视觉编程的权威实践指南,依赖python语言讲解了基础理论与算
《分布式系统架构》内容简介:资深分布式系统研发工程师、构架师多年工作经验总结,从原理、应用和实践3个维度展开从前端到后端,从
《中国哲学十讲》内容简介:《中国哲学十讲》是我国近代著名哲学家李石岑先生的代表作之一,也是在“中西比较”框架下进行中国哲学
《Python Django Web典型模块开发实战》内容简介:Django是基于Python编程语言的三大网站框架之一,是一门需要以实践经验来巩固和提
《黑川雅之的产品设计》包括了理论一:时间含义理论二:身体感觉,触觉的时理论三:编辑的记忆理论四:物质和形体的理论五:晦暗
《无线通信电路设计分析与仿真(第2版)》全面而详尽地介绍了无线通信电路的各个方面,深入浅出地论述如何规划、设计、仿真、创建以
非线性随机时滞神经网络-稳定性分析与脉冲镇定 本书特色 本专著的内容是研究非线性*时滞神经网络系统的稳定与脉冲镇定.这些系统包括脉冲*泛函系统,*递归时滞神经网...
Java程序员职场全攻略-从小工到专家 本书特色 懵懂菜鸟如何成长为一名成功的开发人员?如何在“血雨腥风”的求职大战中脱颖而出?职场中只要技术过硬就可以吃遍天下...
《唐代小说史》内容简介:本书以时代为线索,系统地考察了唐代小说的兴起、繁荣和衰落,详尽地介绍了唐代前期、中期、后期和五代十
《JSP网络程序设计与案例开发教程》内容简介:JSP是目前流行的网络程序开发技术,熟练掌握该技术是计算机软件应用及相关专业学生的
本书系统地介绍了近年来国内外人机界面的最新发展与成果,全书共分6部分,14章。第1部分为概述,介绍了人机界面的定义、起源、发
ForreaderswhowanttodesignWebpagesthatloadquickly,areeasytoupdate,accessibletoall...
《视界·无界2.0:写给UI设计师的设计书(全彩)》内容简介:作为一名从事设计职业的设计师,或者正在通往成为设计师道路的朋友,都
《中国神话密码》内容简介:本书通过五个方面梳理中国神话体系:《山海经》探秘、上古时代的神界领袖、日常生活中的诸神、动植物与
3ds Max三维室内设计实用教程 内容简介 张岩编著的《3dsmax三维室内设计实用教程》为“室内设计·装饰专业高职高专教学丛书”之一。3dsmax为一款可视...
《创新经济学》内容简介:本书在系统梳理经典创新经济理论的基础上,阐述新发展理念中的“创新是引领发展的*动力”的科学内涵,并从
Spring实战(第3版) 本书特色 spring框架已经成为java开发人员的**知识,而且spring3引入了强大的新特性,例如spel、spring表达式...
《正面管教》内容简介:不当的管教方式会影响孩子的一生,而有效的管教方式会有益孩子的一生。本书改变了传统的说教、批评、打骂、