Python编程导论 第2版

Python编程导论 第2版 pdf epub mobi txt 电子书 下载 2025

[美] 约翰·谷泰格 著,陈光欣 译
图书标签:
  • Python
  • 编程入门
  • Python 3
  • 数据结构
  • 算法
  • 面向对象编程
  • 第二版
  • 计算机科学
  • 编程导论
  • 初学者
  • 教程
想要找书就要到 图书大百科
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 人民邮电出版社
ISBN:9787115473769
版次:1
商品编码:12323267
包装:平装
丛书名: 图灵程序设计丛书
开本:16开
出版时间:2018-02-01
用纸:胶版纸
页数:328
正文语种:中文

具体描述

产品特色

编辑推荐

掌握多种不同的思维方式是每个人在大学时代的必修课。具备使用计算思维解决问题的能力是程序员入门的基本技能。本书基于作者开授的MIT热门MOOC教程编写,旨在培养读者的计算思维,为其日后的IT生涯打下坚实的编程基础。

- 以Python 3为示例,涵盖Python大部分特性,重在介绍编程语言可以做什么
- 如何系统性地组织、编写、调试中等规模的程序
- 理解计算复杂度
- 将模糊的问题描述转化为明确的计算方法,以此解决问题,并深刻理解整个过程
- 掌握有用的算法以及问题简化技术
- 使用随机性和模拟技术清晰阐述很难得到封闭解的问题
- 使用计算工具(包括简单的统计、可视化以及机器学习工具)对数据进行理解与建模

内容简介

本书基于MIT 编程思维培训讲义写成,主要目标在于帮助读者掌握并熟练使用各种计算技术,具备用计算思维解决现实问题的能力。书中以Python 3 为例,介绍了对中等规模程序的系统性组织、编写、调试,帮助读者深入理解计算复杂度,还讲解了有用的算法和问题简化技术,并探讨各类计算工具的使用。与本书* 1版相比,* 2版全面改写了后半部分,且书中所有示例代码都从Python 2 换成了Python 3。
本书适合对编程知之甚少但想要使用计算方法解决问题的读者。

作者简介

John V. Guttag
1999年~2004年任MIT电气工程与计算机科学系主任,所授计算机科学系列导论课程深受学生欢迎。目前为计算机科学与人工智能实验室网络及移动系统组联合负责人,还进行软件工程、机器定理证明、硬件验证等领域的研究以及培训工作。获美国布朗大学英语专业学士学位、应用数学硕士学位,多伦多大学计算机科学博士学位。

目录

第1章 启程 1

第2章 Python简介 6

2.1 Python基本元素 7

2.1.1 对象、表达式和数值类型 8

2.1.2 变量与赋值 9

2.1.3 Python IDE 11

2.2 程序分支 12

2.3 字符串和输入 14

2.3.1 输入 15

2.3.2 杂谈字符编码 16

2.4 迭代 17

第3章 一些简单的数值程序 20

3.1 穷举法 20

3.2 for循环 22

3.3 近似解和二分查找 24

3.4 关于浮点数 27

3.5 牛顿 拉弗森法 29

第4章 函数、作用域与抽象 31

4.1 函数与作用域 32

4.1.1 函数定义 32

4.1.2 关键字参数和默认值 33

4.1.3 作用域 34

4.2 规范 37

4.3 递归 39

4.3.1 斐波那契数列 40

4.3.2 回文 42

4.4 全局变量 45

4.5 模块 46

4.6 文件 47

第5章 结构化类型、可变性与

高阶函数 50

5.1 元组 50

5.2 范围 52

5.3 列表与可变性 52

5.3.1 克隆 57

5.3.2 列表推导 57

5.4 函数对象 58

5.5 字符串、元组、范围与列表 60

5.6 字典 61

第6章 测试与调试 65

6.1 测试 65

6.1.1 黑盒测试 66

6.1.2 白盒测试 68

6.1.3 执行测试 69

6.2 调试 70

6.2.1 学习调试 72

6.2.2 设计实验 72

6.2.3 遇到麻烦时 75

6.2.4 找到“目标”错误之后 76

第7章 异常与断言 77

7.1 处理异常 77

7.2 将异常用作控制流 80

7.3 断言 82

第8章 类与面向对象编程 83

8.1 抽象数据类型与类 83

8.1.1 使用抽象数据类型设计程序 87

8.1.2 使用类记录学生与教师 87

8.2 继承 90

8.2.1 多重继承 92

8.2.2 替换原则 93

8.3 封装与信息隐藏 94

8.4 进阶示例:抵押贷款 99

第9章 算法复杂度简介 103

9.1 思考计算复杂度 103

9.2 渐近表示法 106

9.3 一些重要的复杂度 107

9.3.1 常数复杂度 107

9.3.2 对数复杂度 108

9.3.3 线性复杂度 108

9.3.4 对数线性复杂度 109

9.3.5 多项式复杂度 109

9.3.6 指数复杂度 111

9.3.7 复杂度对比 112

* 10章 一些简单算法和数据结构 114

10.1 搜索算法 115

10.1.1 线性搜索与间接引用元素 115

10.1.2 二分查找和利用假设 116

10.2 排序算法 119

10.2.1 归并排序 120

10.2.2 将函数用作参数 122

10.2.3 Python中的排序 123

10.3 散列表 124

* 11章 绘图以及类的进一步扩展 128

11.1 使用PyLab绘图 128

11.2 进阶示例:绘制抵押贷款 133

* 12章 背包与图的* 优化问题 139

12.1 背包问题 139

12.1.1 贪婪算法 140

12.1.2 0/1背包问题的* 优解 143

12.2 图的* 优化问题 145

12.2.1 一些典型的图论问题 149

12.2.2 * 短路径:深度优先搜索和

广度优先搜索 149

* 13章 动态规划 155

13.1 又见斐波那契数列 155

13.2 动态规划与0/1背包问题 157

13.3 动态规划与分治算法 162

* 14章 随机游走与数据可视化 163

14.1 随机游走 163

14.2 醉汉游走 164

14.3 有偏随机游走 170

14.4 变幻莫测的田地 175

* 15章 随机程序、概率与分布 178

15.1 随机程序 178

15.2 计算简单概率 180

15.3 统计推断 180

15.4 分布 192

15.4.1 概率分布 194

15.4.2 正态分布 195

15.4.3 连续型和离散型均匀分布 199

15.4.4 二项式分布与多项式分布 200

15.4.5 指数分布和几何分布 200

15.4.6 本福德分布 203

15.5 散列与碰撞 204

15.6 强队的获胜概率 206

* 16章 蒙特卡罗模拟 208

16.1 帕斯卡的问题 209

16.2 过线还是不过线 210

16.3 使用查表法提高性能 213

16.4 求π的值 214

16.5 模拟模型结束语 218

第* 章 抽样与置信区间 220

17.1 对波士顿马拉松比赛进行抽样 220

17.2 中心极限定理 225

17.3 均值的标准误差 228

第* 章 理解实验数据 231

18.1 弹簧的行为 231

18.2 弹丸的行为 238



18.2.1 可决系数 240

18.2.2 使用计算模型 241

18.3 拟合指数分布数据 242

18.4 当理论缺失时 245

第* 章 随机试验与假设检验 247

19.1 检验显著性 248

19.2 当心P-值 252

19.3 单尾单样本检验 254

19.4 是否显著 255

19.5 哪个N 257

19.6 多重假设 258

第* 章 条件概率与贝叶斯统计 261

20.1 条件概率 262

20.2 贝叶斯定理 263

20.3 贝叶斯更新 264

第* 章 谎言、该死的谎言与统计学 267

21.1 垃圾输入,垃圾输出 267

21.2 检验是有缺陷的 268

21.3 图形会骗人 268

21.4 Cum Hoc Ergo Propter Hoc 270

21.5 统计测量不能说明所有问题 271

21.6 抽样偏差 272

21.7 上下文很重要 273

21.8 慎用外推法 273

21.9 得克萨斯神枪手谬误 274

21.10 莫名其妙的百分比 276

21.11 不显著的显著统计差别 276

21.12 回归假象 277

21.13 小心为上 278

第* 章 机器学习简介 279

22.1 特征向量 281

22.2 距离度量 283

第* 章 聚类 288

23.1 Cluster类 289

23.2 K-均值聚类 291

23.3 虚构示例 292

23.4 更真实的示例 297

第* 章 分类方法 303

24.1 分类器评价 303

24.2 预测跑步者的性别 306

24.3 K-* 邻近方法 308

24.4 基于回归的分类器 312

24.5 从“泰坦尼克”号生还 320

24.6 总结 325

Python 3.5速查表 326
《Python编程导论(第二版)》内容摘要 本书是一本面向初学者的Python编程入门指南,旨在帮助读者掌握Python语言的基础知识和核心概念,为后续深入学习打下坚实基础。全书共分为十五章,内容循序渐进,逻辑清晰,注重理论与实践相结合,力求让读者在轻松愉快的氛围中掌握编程技能。 第一章:初识Python 本章将带领读者踏入Python的奇妙世界。首先,我们会简要介绍Python语言的起源、发展以及其在当今科技领域中的广泛应用,例如Web开发、数据科学、人工智能、自动化运维等,让读者对其产生浓厚的兴趣和初步的认识。接着,我们将指导读者如何下载和安装Python解释器,以及选择并配置一款适合初学者的集成开发环境(IDE),例如PyCharm、VS Code等。通过实际操作,读者将能够成功搭建起自己的Python开发环境,为接下来的学习做好准备。最后,本章将呈现一个简单的“Hello, World!”程序,通过这个最基础的示例,让读者亲身体验编写、运行Python代码的过程,并理解代码是如何被执行的。 第二章:Python基础语法 本章是学习Python的基石。我们将详细讲解Python的核心语法元素,包括变量的声明与赋值、不同数据类型(如整数、浮点数、字符串、布尔值)的特点与使用。我们会深入探讨Python强大的数据结构,如列表(list)、元组(tuple)、字典(dictionary)和集合(set),讲解它们的创建、访问、修改以及常用的操作方法,并分析它们各自的适用场景。此外,本章还将介绍Python的运算符,包括算术运算符、比较运算符、逻辑运算符、赋值运算符等,以及运算符的优先级规则,帮助读者理解表达式的求值过程。注释在代码编写中的重要性也会被强调,我们将介绍单行注释和多行注释的使用方法,以及如何通过注释提高代码的可读性。 第三章:流程控制 掌握流程控制是编写有逻辑、能解决问题的程序设计的关键。本章将详细介绍Python的条件语句,包括`if`、`elif`和`else`语句,讲解如何根据不同的条件执行不同的代码块。通过丰富的示例,读者将学会如何构建复杂的条件判断逻辑。接着,我们将深入学习循环结构,包括`for`循环和`while`循环。`for`循环将重点讲解如何遍历序列(如字符串、列表、元组、字典的键),以及`range()`函数的妙用。`while`循环则会介绍其基本用法和退出条件。此外,我们还将讲解`break`和`continue`语句,它们是如何控制循环的执行流程的,以及`pass`语句的占位作用。 第四章:函数:代码的组织者 函数是实现代码复用和模块化设计的核心。本章将引导读者理解函数的概念,学习如何定义自己的函数,包括函数名、参数和返回值。我们将详细讲解参数的传递方式,包括位置参数、关键字参数、默认参数以及可变参数(`args`和`kwargs`)。通过深入理解参数,读者可以编写出更加灵活和通用的函数。函数的作用域,包括局部变量和全局变量,以及它们之间的区别和相互影响,也将是本章的重点内容。此外,我们将介绍Python内置函数的使用,如`print()`、`len()`、`type()`等,并展示如何利用它们来简化编程。 第五章:模块与包 为了更好地组织和管理代码,Python提供了模块和包的机制。本章将详细讲解如何创建和使用模块,以及如何导入其他模块(如`import`、`from ... import ...`、`import ... as ...`)。我们将介绍Python的标准库,这是一个包含了大量常用功能的模块集合,并选取一些常用的标准库模块进行演示,如`math`、`random`、`os`、`sys`等。同时,本章还将介绍如何组织和创建自己的包,以及如何进行包的安装和管理,为读者构建大型项目奠定基础。 第六章:文件操作 数据持久化是编程中不可或缺的一环。本章将带领读者学习如何与文件进行交互,包括文件的打开、读取、写入和关闭。我们将介绍不同的文件打开模式(如读模式`'r'`、写模式`'w'`、追加模式`'a'`)以及它们的作用。同时,我们还将讲解如何处理文本文件和二进制文件,以及如何使用`with`语句来确保文件被正确关闭,避免资源泄露。 第七章:异常处理 在程序运行过程中,错误和异常是难免的。本章将重点介绍Python的异常处理机制。我们将讲解如何使用`try`、`except`、`else`和`finally`语句来捕获和处理异常,从而提高程序的健壮性。通过学习常见的内置异常类型,读者将能够更好地理解错误发生的原因,并编写出更鲁棒的代码。 第八章:面向对象编程(OOP)基础 面向对象编程是现代软件开发的主流范式。本章将为读者引入面向对象编程的核心概念,包括类(class)和对象(object)。我们将讲解如何定义类,包括属性(数据成员)和方法(成员函数)。然后,我们将介绍如何创建类的实例(对象),以及如何通过对象访问其属性和调用其方法。构造函数(`__init__`方法)的用法,以及实例方法和类方法之间的区别,也将被详细讲解。 第九章:面向对象编程(OOP)进阶 在本章中,我们将进一步深入面向对象编程的世界。我们将详细讲解面向对象编程的四大特性:封装、继承、多态和抽象。封装将帮助读者理解如何隐藏对象的内部细节,只暴露必要的接口。继承将展示如何通过创建子类来扩展和重用父类的功能。多态将解释如何让不同的对象对同一个消息做出不同的响应。抽象将引导读者理解如何设计通用的接口和基类。此外,本章还将介绍魔术方法(如`__str__`、`__len__`等)的用法,以及如何通过运算符重载来增强类的功能。 第十章:数据结构进阶 在掌握了基本数据结构后,本章将带领读者探索更高级的数据结构和算法。我们将深入讲解列表推导式(list comprehension)和字典推导式(dictionary comprehension),它们能够以更简洁优雅的方式创建列表和字典。此外,我们还将介绍更复杂的序列处理技巧,以及如何使用内置函数和模块来高效地处理数据。 第十一章:迭代器与生成器 迭代器和生成器是Python中实现惰性求值和高效内存管理的强大工具。本章将详细讲解迭代器协议,以及如何创建自定义迭代器。接着,我们将重点介绍生成器(generator)的概念,以及如何使用`yield`关键字来创建生成器函数。通过生成器,读者可以处理大规模数据集,而无需一次性将所有数据加载到内存中。 第十二章:装饰器 装饰器是一种强大的Python语法糖,可以动态地修改函数或类的行为。本章将详细讲解装饰器的原理,以及如何使用装饰器来简化代码、实现日志记录、性能分析、权限控制等功能。通过实际案例,读者将能够理解装饰器的应用场景和编写方法。 第十三章:正则表达式 正则表达式是处理和匹配文本的强大工具。本章将介绍正则表达式的基本语法,包括字符匹配、量词、分组、断言等。我们将讲解如何使用Python的`re`模块来执行查找、替换、分割等操作,并演示如何使用正则表达式来解决实际的文本处理问题,如数据清洗、验证用户输入等。 第十四章:数据库交互 数据存储是应用程序的重要组成部分。本章将介绍如何使用Python与数据库进行交互。我们将以SQLite为例,讲解如何连接数据库、创建表、插入、查询、更新和删除数据。读者将学习如何使用SQL语句来操作数据库,并了解Python中与数据库交互的常用库和最佳实践。 第十五章:项目实践 理论学习需要实践的检验。本章将提供几个小型实战项目,将前面所学知识融会贯通。这些项目可能涵盖简单的命令行工具、文本处理程序、数据分析小应用等。通过动手实践,读者将能够巩固所学知识,提升解决实际问题的能力,并为未来的开发项目积累宝贵的经验。 通过对本书内容的学习,读者将能够扎实掌握Python编程的基础,具备独立编写简单Python程序的能力,并为进一步深入学习Python的各个领域打下坚实的基础。

用户评价

评分

初次接触Python,感觉就像是打开了一个全新的世界。这本书就像一位经验丰富的老船长,带领我这个新手在浩瀚的Python海洋里 navigates 。它不仅仅是枯燥的代码堆砌,而是充满了生动有趣的例子,让我能够循序渐进地理解每一个概念。从最基础的变量、数据类型,到复杂的函数、类,再到后面涉及的文件操作、模块导入,每一步都讲解得详详细细,而且重点突出,让我这个完全没有编程基础的人也能跟上节奏。我尤其喜欢书中对某些关键概念的类比解释,比如把函数比作一个“小工厂”,把类比作“蓝图”,这些形象的比喻大大降低了理解的门槛。更重要的是,它不仅仅教我“怎么做”,更会让我理解“为什么这么做”,培养了我解决问题的思路。书中的练习题也很有代表性,虽然有些题目一开始会让我绞尽脑汁,但当我最终找到解决方案时,那种成就感是无与伦比的。而且,这本书的排版也相当人性化,代码块清晰明了,关键术语也做了加粗处理,阅读起来非常舒适。我感觉自己不再是那个面对代码就头晕的菜鸟了,至少,我现在敢于去尝试,敢于去构建自己的第一个小程序了。

评分

一直以来,我都觉得编程是一件很神秘的事情,遥不可及。直到我翻开了这本书。它真的像一本“导论”,把我从完全的门外汉,一步步带入了编程的殿堂。我最喜欢的是它那种“润物细无声”的教学方式,不会一上来就给你灌输大量概念,而是通过一个个小的、可执行的代码片段,让你在实践中感受编程的魅力。从最简单的“Hello, World!”开始,到如何进行简单的计算,再到如何让程序做出简单的判断和循环,每一步都充满了惊喜。这本书让我明白,编程并不是只有高智商的人才能掌握的技能,而是可以通过学习和练习,人人都可以掌握的工具。它让我对计算机的运行方式有了更直观的认识,也让我看到了通过代码来创造和解决问题的可能性。书中的错误处理和调试技巧的讲解,也让我明白了在编程过程中遇到问题是常态,更重要的是学会如何去解决它们。

评分

我是一名软件开发爱好者,虽然之前接触过一些其他的编程语言,但总感觉不够灵活和方便。Python以其简洁的语法和强大的生态系统吸引了我。这本书,为我提供了一个非常好的起点。它不仅仅教授了Python的基础语法,更重要的是,它教会了我如何利用Python来解决实际问题。书中关于面向对象编程(OOP)的讲解,是我学习的重点和难点,但这本书的处理方式非常巧妙,通过生动的例子,将抽象的概念具象化,让我对类、对象、继承、多态等概念有了清晰的认识。同时,书中还涉及到了常用库的使用,例如用于网络爬虫的Requests库,以及用于数据可视化的Matplotlib库,这些都极大地拓宽了我的视野,让我看到了Python在实际项目中的巨大潜力。这本书的阅读体验也非常棒,每一章节的学习都让我感到充实和进步,我仿佛能够看到自己代码能力在不断提升。

评分

我一直对数据科学和机器学习领域充满好奇,而Python无疑是通往这个领域的必经之路。这本书,虽然名字是“导论”,但它所涵盖的广度和深度,远超我的想象。它不仅仅是教你Python的语法,更像是为你打开了一扇通往更广阔技术世界的大门。书中在讲解完基础知识后,迅速切入了数据处理和分析的核心,通过Pandas等库的实际应用,我学会了如何清洗、转换、合并和分析数据,这些都是在实际工作中不可或缺的技能。更让我惊喜的是,书中还涉及到了基础的机器学习算法的介绍,虽然篇幅不长,但足以让我对KNN、决策树等概念有一个初步的认识,并能通过简单的代码实现来体验。这种理论与实践紧密结合的方式,让我觉得学到的知识真正能够落地,而不是停留在纸面上。我曾经尝试过一些在线教程,但总觉得缺乏系统性和连贯性,而这本书的逻辑结构非常清晰,从易到难,循序渐进,每章都建立在前一章的基础上,让我感觉学习过程非常顺畅。

评分

作为一个需要处理大量文本数据的研究人员,我一直在寻找一款能够快速高效处理文本的工具,Python自然而然地成为了我的首选。这本书,绝对是我遇到的最实用的Python入门书籍之一。它非常注重实际应用,尤其是在文本处理方面,讲解得非常透彻。从字符串的各种操作,到正则表达式的强大功能,再到文件I/O的详细解析,每一个环节都紧密围绕着我日常的工作需求。我特别喜欢书中关于正则表达式的部分,它用非常直观的方式解释了复杂的匹配规则,并通过大量的实例演示,让我能够快速掌握如何提取文本中的关键信息,进行模式匹配和替换。此外,书中关于数据结构(如列表、字典)的应用讲解,也让我对如何组织和管理文本数据有了更深刻的理解。这本书的语言风格也非常亲切,没有过多的学术术语,而是用最接地气的方式来解释技术概念,这对于我这样非计算机专业的读者来说,简直是福音。

评分

很不错的书 买来学习一下

评分

书的质量很好,好好学习

评分

很好的一本书,快递小哥很给力

评分

不错不错不错不错

评分

印刷很不错,看了下目录!这本书主要讲解思维方式,非常不错!新手一枚,写代码总是乱七八糟,找不到方向!希望能有所提升!

评分

不错的书!

评分

包装有破损,书本很薄,内容还没开始看

评分

很好的一本书,快递小哥很给力

评分

配合课程买的书,结果课没怎么听,,,,,,,

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.teaonline.club All Rights Reserved. 图书大百科 版权所有