本书基于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
《古城卫士:阮仪三传》内容简介:沧桑平遥、风情丽江、烟雨周庄、古雅苏州、水墨乌镇……都是因为一位老人的守护,其最初样貌与生
《嵌入式Linux应用程序开发详解》主要分为3个部分,包括Linux基础、搭建嵌入式Linux环境和嵌入式Linux的应用开发。Linux基础部分
《空港城市复合系统演化研究》内容简介:本书以世界范围内空港城市的快速发展为背景,系统地分析了空港城市演化的主体、客体和动力
你将从《深入浅出Web设计(中文版)》学到什么?你曾经希望看看书就能学到真正的网站设计吗?曾经想过该如何同时达成让网站看起来美
《微信营销36计》内容简介:这是一本介绍微信营销技巧的书。在《微信营销36计:你不可不知的赚钱、赢粉丝技巧 》书中我们微信给力的
AutoCAD 2012中文版建筑设计标准实例教程 本书特色 《AutoCAD2012中文版建筑设计标准实例教程(第3版)》共14章,分为基础知识和建筑实例两篇...
《城乡中国(下)》内容简介:《城乡中国》是著名经济学家周其仁关于中国城镇化这一焦点问题的鼎力之作。周其仁《城乡中国》与费孝
《财务报表分析》内容简介:本书立足报表间的关系和影响,从三个角度解读,带你构建财务分析的“三维视角”。为帮助深入理解财务报
本书采用程序员最爱用的面向对象C++语言来描述数据结构和算法,并把数据结构原理和算法分析技术有机地结合在一起,系统介绍了各种
本书从科学社会学的角度,系统讲述了社会网络分析如何脱胎于不同的学科,经历了起伏的发展阶段,最后经过学科共同体的努力,会聚
《空间的语言》介绍了:这部独特的理论著作为我们提供了一个完事的建筑空间理念论述。布莱恩·劳森用最精炼通俗的语言对这个理念
ThebookcoverstheforthcomingPylons0.9.7releaseandisavailbleforfreetoreadhereonlin...
建筑是知性和理性的产物,完全承受着人们经年累月活动在其中,所以对于房间的布局必须仔细考虑,任何细节也不能放过。建筑是感性
《熊猫指南·风味探索》内容简介:中华文明是四大古文明中唯一延续至今的,中国人喜好美食也是世界闻名的。如此大的国家,如此丰饶
《狼书(卷1):更了不起的Node.js》内容简介:Node.js开发简单,性能极好,一经发布便成了明星级项目。随着大前端领域的蓬勃发展,
Forundergraduate-levelcoursesinSignalsandSystems.Thiscomprehensiveexplorationofs...
一间麻省理工的旧实验室一群至情至性的雷达先锋一则可歌可泣的惊世传奇一段令人叹惋的豪情历史雷达的发明是扭转二次大战战局的关
风靡全球的网络隐私安全圣经高危信息生态环境的生存指南这是一部及时、生动、富有启发性的著作,可以改变人们对隐私、名声以及互
《C语言深度解剖:解开程序员面试笔试的秘密》由作者结合自身多年嵌入式c语言开发经验和平时讲解C语言的心得体会整理而成,其中有
《范仲淹》内容简介:范仲淹是北宋著名政治家、诗人、学者,在生前身后享有极高声誉:“本朝人物以仲淹为第一”“求之千百年间,盖