《Python编程导论(第2版)》是一本全面的Python学习手册,系统地介绍了Python编程的基础和高级概念,从入门的首步到深入的编程理念,书中逐层深入,内容丰富,它详细解释了函数、类、异常处理等核心概念,并引导读者理解面向对象编程,对于追求更深层技能的读者,书中还深入探讨了算法复杂度,并介绍了数据结构如背包和图的优化问题,动态规划、随机程序以及数据可视化等高级主题提供了宝贵的实践知识,在统计学和概率论方面,书中不仅讲解了基础知识,还展示了如何应用Python进行蒙特卡罗模拟、假设检验和概率分布等分析,机器学习的简介以及对聚类和分类方法的讨论,为读者打开了数据科学的大门,这本书的内容和结构对于希望系统学习Python并应用于各种实际问题的编程爱好者来说,是一份宝贵的资料。
本书评价
这本书就是我们期待已久的“计算思维”图书:不拘泥于技术细节,详尽展现了计算机科学的广度和乐趣。第二版收录了很多全新的材料,帮助读者聚焦计算,包括理解数据、完善传统计算问题的解决方案。
-Jeannette M.Wing,微软研究院副总裁,卡耐基梅隆大学计算机科学系顾问教授、前系主任
本书作者既是一位优秀的教师,也是杰出的作家。虽然你将通过本书学习Python,但这并不是“一本Python书”;虽然你也会学习编程,但这同样不是一本“编程书”,本书叙述严谨,可读性强,详细介绍了计算问题解决方法以及数据科学。第二版进行了扩展与重构,充分反映了python作为数据科学语言所扮演的重要角色。
-Ed Lazowska,比尔和梅琳达.盖茨基金会计算机科学与工程部门主席,华盛顿大学电子科研学院导师
用Python3讲授一门小型计算机科学课程时,我选择了这本书,看重的是书中关于计算机科学和编程更广阔视野和更多思路。
这本书非常棒,涵盖了计算机科学的众多基础领域。作者用Python讲解了计算相关知识,并且教你如何以计算机科学家的身份思考并解决问题。书中的示例也能让你切身实践习得的知识。
读者评价
书是一名大四生翻译的,有些地方表达的不地道,姑且随手找出几处吐吐槽。
p1: [从内存的角度来说,一台普通的计算机可能有几百GB]
我从来没见过一台普通计算机的内存个能有几百GB,我猜测原文应该用的是memory,这里翻译成存储设备比较合适。
p3:[当一个整数整数存在整数立方根时]
给出的程序代码只能求解正整数的整数立方根,所以还是把文字说明改改吧。
p4:解释python2.7中的range函数和xrange函数区别那段,讲解的十分混乱,让人摸不到头脑,想来这应该是原文的问题。没想到美帝大学教授的表达能力也这么让人捉急。表达的时候切记不能跳跃,中间不能有重大步骤的遗漏,否则讲出来就让人摸不到头脑。
p36-37:help命令里面输出的是英文,代码里面却翻译成中文了,要么全翻译、要么全不翻译,不要只翻译了一半,容易让人看着不明就里。
整体来说这本书还算是不错的,但是要是能找到一个工作多年,富有经验的程序员来翻译就更好了。
一开始想着应该有400+页,结果不到300页。
python语言、一般的算法理论、一些数学问题的算法、软件测试、机器学习都有所涉及,但是书本身太薄,这样很多地方势必写得不清楚。
要举例子的话,我觉得类和面向对象编程说得太简略。
另外python现在应该普及3.x了,没必要再以2.x为主,兼顾3.x.
本书特色
在这里还是要推荐下我自己建的Python开发学习群:483546416,群里都是学Python开发的,如果你正在学习Python ,小编欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python软件开发相关的),包括我自己整理的一份2018最新的Python进阶资料和高级开发教程,欢迎进阶中和进想深入Python的小伙伴
掌握多种不同的思维方式是每个人大学时代的必修课。具备使用计算思维解决问题的能力是程序员入门的基本技能。本书基于作者开授的MIT热门MOOC教程编写,旨在培养读者的计算思维,为其日后的IT生涯打下坚实的编程基础。
- - 以Python 3为示例,涵盖Python大部分特性,重在介绍编程语言可以做什么
- - 如何系统性地组织、编写、调试中等规模的程序
- - 理解计算复杂度
- - 将模糊的问题描述转化为明确的计算方法,以此解决问题,并深刻理解整个过程
- - 掌握有用的算法以及问题简化技术
- - 使用随机性和模拟技术清晰阐述很难得到封闭解的问题
- - 使用计算工具(包括简单的统计、可视化以及机器学习工具)对数据进行理解与建模
内容简介
本书基于MIT 编程思维培训讲义写成,主要目标在于帮助读者掌握并熟练使用各种计算技术,具备用计算思维解决现实问题的能力。书中以Python 3 为例,介绍了对中等规模程序的系统性组织、编写、调试,帮助读者深入理解计算复杂度,还讲解了有用的算法和问题简化技术,并探讨各类计算工具的使用。与本书* 1版相比,* 2版全面改写了后半部分,且书中所有示例代码都从Python 2 换成了Python 3。
本书适合对编程知之甚少但想要使用计算方法解决问题的读者。
目录
- 第1章 启程 1
- 第2章 Python简介 6
- 第3章 一些简单的数值程序 20
- 第4章 函数、作用域与抽象 31
- 第5章 结构化类型、可变性与
- 高阶函数 50
- 第6章 测试与调试 65
- 第7章 异常与断言 77
- 第8章 类与面向对象编程 83
- 第9章 算法复杂度简介 103
- * 10章 一些简单算法和数据结构 114
- * 11章 绘图以及类的进一步扩展 128
- * 12章 背包与图的* 优化问题 139
- 广度优先搜索 149
- * 13章 动态规划 155
- * 14章 随机游走与数据可视化 163
- * 15章 随机程序、概率与分布 178
- * 16章 蒙特卡罗模拟 208
- 第* 章 抽样与置信区间 220
- 第* 章 理解实验数据 231
- 第* 章 随机试验与假设检验 247
- 第* 章 条件概率与贝叶斯统计 261
- 第* 章 谎言、该死的谎言与统计学 267
- 第* 章 机器学习简介 279
- 第* 章 聚类 288
- 第* 章 分类方法 303
动态规划是一种非常高效的方法,适用于解决具有重复子问题和最优子结构的问题。 如果一个问题的全局最优解可以通过组合局部子问题的最优解求出,那么这个问题就具有最优子结构。我们已经见过一些这样的问题,比如归并排序。归并排序对一个列表进行排序的方式就是先对子列表进行排序,然后再合并子列表的排序结果。 如果求出一个问题的最优解时需要对同样的某个问题求解多次,那么这个问题就具有重叠子 问题。 0/1背包问题具有这两个特性,尽管不太明显。我们要先看一个更明显具有最优子结构和重叠子问题的问题。
python是一门tong通用性编程语言,几乎可以快速创建任何类型的程序,而不需直接访问计算机硬件。这次学习主要是将python作为一个工具,目的是xu学习思考和解决计算问题的相关概念。 首先xuex学习python的基本元素。 python程序处理的核心元素是对象。其有四类标量对象:(1)int(2)float(3)bool(4)None python的对象可以有一个或多个变量与之关联,也可以不关联任何名称。,对象和变量绑定出现时,变量仅是名称没有其他意义。 变量名可以包含大写字母、小写字母、数字(但不能以数字开头)和特殊字 符_。Python变量名是大小写敏感的,如Julie和julie就是不同的变量名。后,Python中还 有少量的保留字(有时称为关键字),它们有专门的意义,不能用作变量名。
书是一名大四生翻译的,有些地方表达的不地道,姑且随手找出几处吐吐槽。 p1: [从内存的角度来说,一台普通的计算机可能有几百GB] 我从来没见过一台普通计算机的内存个能有几百GB,我猜测原文应该用的是memory,这里翻译成存储设备比较合适。 p3:[当一个整数整数存在整数立方根时] 给出的程序代码只能求解正整数的整数立方根,所以还是把文字说明改改吧。 p4:解释python2.7中的range函数和xrange函数区别那段,讲解的十分混乱,让人摸不到头脑,想来这应该是原文的问题。没想到美帝大学教授的表达能力也这么让人捉急。表达的时候切记不能跳跃,中间不能有重大步骤的遗漏,否则讲出来就让人摸不到头脑。 p36-37:help命令里面输出的是英文,代码里面却翻译成中文了,要么全翻译、要么全不翻译,不要只翻译了一半,容易让人看着不明就里。 整体来说这本书还算是不错的,但是要是能找到一个工作多年,富有经验的程序员来翻译就更好了。