像计算机科学家一样思考Python (第2版)pdf

下载地址:网盘下载

内容简介  · · · · · ·

本书以培养读者以计算机科学家一样的思维方式来理解Python语言编程。贯穿全书的主体是如何思考、设计、开发的方法,而具体的编程语言,只是提供了一个具体场景方便介绍的媒介。

全书共21章,详细介绍Python语言编程的方方面面。本书从基本的编程概念开始讲起,包括语言的语法和语义,而且每个编程概念都有清晰的定义,引领读者循序渐进地学习变量、表达式、语句、函数和数据结构。书中还探讨了如何处理文件和数据库,如何理解对象、方法和面向对象编程,如何使用调试技巧来修正语法错误、运行时错误和语义错误。每一章都配有术语表和练习题,方便读者巩固所学的知识和技巧。此外,每一章都抽出一节来讲解如何调试程序。作者针对每章所专注的语言特性,或者相关的开发问题,总结了调试的方方面面。

本书的第2版与第1版相比,做了很多更新,将编程语言从Python 2升级成Python 3,并修改了很多示例和练习,增加了新的章节,更全面地介绍Python语言。

这是一本实用的学习指南,适合没有Python编程经验的程序员阅读,也适合高中或大学的学生、Python爱好者及需要了解编程基础的人阅读。对于首次接触程序设计的人来说,是一本不可多得的佳作。

作者简介  · · · · · ·

[美] 艾伦 B. 唐尼(Allen B. Downey)

Allen Downey是欧林工程学院的计算机科学教授,曾任教于韦尔斯利学院、科尔比学院和加州大学伯克利分校。他是加州大学伯克利分校的计算机科学博士,并拥有MIT的硕士和学士学位。

译者介绍

赵普明 毕业清华大学计算机系,从事软件开发行业近10年。从2.3版本开始接触Python,工作中使用Python编写脚本程序,用于快速原型构建以及日志计算等日常作业;业余时,作为一个编程语言爱好者,对D、Kotlin、Lua、Clojure、Scala、Julia、Go等语言均有了解,但至今仍为Python独特的风格、简洁的设计而惊叹。

目录  · · · · · ·

第1章 程序之道 1
1.1 什么是程序 1
1.2 运行Python 2
1.3 第一个程序 3
1.4 算术操作符 3
1.5 值和类型 4
1.6 形式语言和自然语言 5
1.7 调试 6
1.8 术语表 7
1.9 练习 8
第2章 变量、表达式和语句 9
2.1 赋值语句 9
2.2 变量名称 9
2.3 表达式和语句 10
2.4 脚本模式 11
2.5 操作顺序 12
2.6 字符串操作 13
2.7 注释 13
2.8 调试 14
2.9 术语表 15
2.10 练习 16
第3章 函数 17
3.1 函数调用 17
3.2 数学函数 18
3.3 组合 19
3.4 添加新函数 19
3.5 定义和使用 21
3.6 执行流程 21
3.7 形参和实参 22
3.8 变量和形参是局部的 23
3.9 栈图 23
3.10 有返回值函数和无返回值函数 24
3.11 为什么要有函数 25
3.12 调试 26
3.13 术语表 26
3.14 练习 27
第4章 案例研究:接口设计 30
4.1 turtle模块 30
4.2 简单重复 31
4.3 练习 32
4.4 封装 33
4.5 泛化 34
4.6 接口设计 34
4.7 重构 35
4.8 一个开发计划 36
4.9 文档字符串 37
4.10 调试 38
4.11 术语表 38
4.12 练习 39
第5章 条件和递归 41
5.1 向下取整除法操作符和求模操作符 41
5.2 布尔表达式 42
5.3 逻辑操作符 42
5.4 条件执行 43
5.5 选择执行 43
5.6 条件链 44
5.7 嵌套条件 44
5.8 递归 45
5.9 递归函数的栈图 46
5.10 无限递归 47
5.11 键盘输入 47
5.12 调试 48
5.13 术语表 49
5.14 练习 50
第6章 有返回值的函数 53
6.1 返回值 53
6.2 增量开发 54
6.3 组合 56
6.4 布尔函数 57
6.5 再谈递归 58
6.6 坚持信念 59
6.7 另一个示例 60
6.8 检查类型 60
6.9 调试 61
6.10 术语表 63
6.11 练习 63
第7章 迭代 65
7.1 重新赋值 65
7.2 更新变量 66
7.3 while语句 66
7.4 break语句 68
7.5 平方根 68
7.6 算法 70
7.7 调试 70
7.8 术语表 71
7.9 练习 71
第8章 字符串 73
8.1 字符串是一个序列 73
8.2 len 74
8.3 使用for循环进行遍历 74
8.4 字符串切片 75
8.5 字符串是不可变的 76
8.6 搜索 77
8.7 循环和计数 77
8.8 字符串方法 78
8.9 操作符in 79
8.10 字符串比较 79
8.11 调试 80
8.12 术语表 82
8.13 练习 82
第9章 案例分析:文字游戏 85
9.1 读取单词列表 85
9.2 练习 86
9.3 搜索 87
9.4 使用下标循环 88
9.5 调试 90
9.6 术语表 90
9.7 练习 91
第10章 列表 93
10.1 列表是一个序列 93
10.2 列表是可变的 94
10.3 遍历一个列表 95
10.4 列表操作 95
10.5 列表切片 96
10.6 列表方法 96
10.7 映射、过滤和化简 97
10.8 删除元素 98
10.9 列表和字符串 99
10.10 对象和值 100
10.11 别名 101
10.12 列表参数 102
10.13 调试 103
10.14 术语表 104
10.15 练习 105
第11章 字典 108
11.1 字典是一种映射 108
11.2 使用字典作为计数器集合 110
11.3 循环和字典 111
11.4 反向查找 111
11.5 字典和列表 112
11.6 备忘 114
11.7 全局变量 115
11.8 调试 117
11.9 术语表 118
11.10 练习 119
第12章 元组 121
12.1 元组是不可变的 121
12.2 元组赋值 122
12.3 作为返回值的元组 123
12.4 可变长参数元组 124
12.5 列表和元组 124
12.6 字典和元组 126
12.7 序列的序列 127
12.8 调试 128
12.9 术语表 129
12.10 练习 129
第13章 案例研究:选择数据结构 132
13.1 单词频率分析 132
13.2 随机数 133
13.3 单词直方图 134
13.4 最常用的单词 135
13.5 可选形参 136
13.6 字典减法 137
13.7 随机单词 138
13.8 马尔可夫分析 138
13.9 数据结构 140
13.10 调试 141
13.11 术语表 142
13.12 练习 143
第14章 文件 144
14.1 持久化 144
14.2 读和写 144
14.3 格式操作符 145
14.4 文件名和路径 146
14.5 捕获异常 147
14.6 数据库 148
14.7 封存 149
14.8 管道 150
14.9 编写模块 151
14.10 调试 152
14.11 术语表 152
14.12 练习 153
第15章 类和对象 155
15.1 用户定义类型 155
15.2 属性 156
15.3 矩形 157
15.4 作为返回值的实例 158
15.5 对象是可变的 159
15.6 复制 159
15.7 调试 161
15.8 术语表 161
15.9 练习 162
第16章 类和函数 163
16.1 时间 163
16.2 纯函数 164
16.3 修改器 165
16.4 原型和计划 166
16.5 调试 167
16.6 术语表 168
16.7 练习 168
第17章 类和方法 170
17.1 面向对象特性 170
17.2 打印对象 171
17.3 另一个示例 172
17.4 一个更复杂的示例 173
17.5 init方法 173
17.6 _ _str_ _方法 174
17.7 操作符重载 175
17.8 基于类型的分发 175
17.9 多态 177
17.10 接口和实现 177
17.11 调试 178
17.12 术语表 179
17.13 练习 179
第18章 继承 181
18.1 卡片对象 181
18.2 类属性 182
18.3 对比卡牌 183
18.4 牌组 184
18.5 打印牌组 185
18.6 添加、删除、洗牌和排序 185
18.7 继承 186
18.8 类图 188
18.9 数据封装 189
18.10 调试 190
18.11 术语表 191
18.12 练习 191
第19章 Python拾珍 194
19.1 条件表达式 194
19.2 列表理解 195
19.3 生成器表达式 196
19.4 any和all 197
19.5 集合 197
19.6 计数器 199
19.7 defaultdict 200
19.8 命名元组 201
19.9 收集关键词参数 202
19.10 术语表 203
19.11 练习 203
第20章 调试 205
20.1 语法错误 205
20.2 运行时错误 207
20.2.1 我的程序什么都不做 207
20.2.2 我的程序卡死了 207
20.2.3 无限循环 208
20.2.4 无限递归 208
20.2.5 执行流程 208
20.2.6 当我运行程序,会得到一个异常 209
20.2.7 我添加了太多print语句,被输出淹没了 210
20.3 语义错误 210
20.3.1 我的程序运行不正确 211
20.3.2 我有一个巨大而复杂的表达式,而它和我预料的不同 211
20.3.3 我有一个函数,返回值和预期不同 212
20.3.4 我真的真的卡住了,我需要帮助 212
20.3.5 不行,我真的需要帮助 212
第21章 算法分析 214
21.1 增长量级 215
21.2 Python基本操作的分析 217
21.3 搜索算法的分析 218
21.4 散列表 219
21.5 术语表 223
译后记 224

下载地址:网盘下载

原文地址:https://www.cnblogs.com/longgg/p/8419190.html

时间: 2024-11-05 20:25:52

像计算机科学家一样思考Python (第2版)pdf的相关文章

像计算机科学家一样思考Python (第2版)高清PDF电子版下载

本书以培养读者以计算机科学家一样的思维方式来理解Python语言编程.贯穿全书的主体是如何思考.设计.开发的方法,而具体的编程语言,只是提供了一个具体场景方便介绍的媒介. 全书共21章,详细介绍Python语言编程的方方面面.本书从基本的编程概念开始讲起,包括语言的语法和语义,而且每个编程概念都有清晰的定义,引领读者循序渐进地学习变量.表达式.语句.函数和数据结构.书中还探讨了如何处理文件和数据库,如何理解对象.方法和面向对象编程,如何使用调试技巧来修正语法错误.运行时错误和语义错误.每一章都配

像计算机科学家一样思考python-第3章 函数

在程序设计中,函数是指用于进行某种计算的一系列语句的有名称的组合.定义一个函数时,需要指定函数的名称并写下一系列程序语句.之后,就可以使用名称来“调用”这个函数 3.1函数调用 一个函数调用的例子 >>> type(42) <class 'int'> 这个函数的名称是type,括号中的表达式我们称之为函数的参数.这个函数调用的结果是求得参数的类型. 我们通常说函数“接收”参数,并“返回”结果.这个结果也称为返回值 3.2数学函数 Python有一个数学计算模块,提供了大多数常

像计算机科学家一样思考python笔记

[TOC] #1 程序之道 ##1.1 Python程序语言 - 有两种程序可以让高级语言转换为低级语言,分别是直译器和编译器. - 有两种方式使用python的直译器:shell模式和脚本模式. ##1.8 形式语言和自然语言 - 自然语言是人们所说的语言. - 形式语言是人们为特定的应用设计的语言 *<b>程序语言是设计来呈现计算的形式语言</b>* 语法规则分为两种,分别属于标记和结构.标记是程序语言的基本组件,就像字词.数字和化学元素一样; 结构是标记的排列方法. >

读《像计算机科学家一样思考python》&mdash;&mdash;笔记(2/2)

包括如下目录: 第十四章 文件 第十五章 类和对象 第十六章 类和函数 第十七章 类和方法 第18章 继承 第十四章 文件 1. 读和写 一个文件需要先打开,然后再进行读与写, 最后把打开的文件关闭. #读文件 >>> f = open('words.txt') >>> print f <open file 'words.txt', mode 'r' at 0x7fd74378e4b0> >>> f.readline() 'aa\r\n'

《像计算机科学家一样思考Java》—— 读后总结

本书属于入门级的Java书籍,与其他的向编程思想.核心技术不同的是,这本书不是按部就班的讲解java变成知识,而是随着语言的深入慢慢增加知识点. 这本书以一个语言开发者的角度,深入浅出的讲解了Java语言的机制. 比如语言最基本的变量和方法,到后续的深入,功能的增加,逐渐的加大难度与知识点. 本书内容 程序语言 一门编程语言,在学习之前要看它是高级语言.还是低级语言.低级语言更接近计算机底层,但是不容易编写和理解,比如汇编.还要看它是解释型的还是需要编译的.比如html,css都是属于解释型的,

总结数据科学家常用的Python库

概述 这篇文章中,我们挑选了24个用于数据科学的Python库. 这些库有着不同的数据科学功能,例如数据收集,数据清理,数据探索,建模等,接下来我们会分类介绍. 您觉得我们还应该包含哪些Python库?让我们知道! 介绍 我是Python语言的忠实粉丝,它是我在数据科学方面学到的第一门编程语言.Python有三个特点: 它的易用性和灵活性 全行业的接受度:它是业内最流行的数据科学语言 用于数据科学的庞大数量的Python库 事实上,有如此多的Python库,要跟上它们的发展速度可能会变得非常困难

历史上最知名的15位计算机科学家

麻省理工学院媒体实验室推出了一个名为"Pantheon"的项目试图量化历史人物对文化的影响. 基于维基百科上超过 11,000 位历史人物的数据,他们创建出了一种名为"历史人气指数(HPI)"的参数.这一参数根据语言数量.页面访问量等数据得出.相较演员.运动员和艺术家,著 名的技术人员仍普遍得分较低.以下列出了 15 个历史上最知名的计算机科学家,其中许多都是开源界的名人.我们来看一下他们的"HPI"分数. 14. Ward Cunningham

由 &#39;&#39; in &#39;abc&#39; return True 引发的思考----Python 成员测试操作

最近遇到判断字典中是否存在空字符串'',这个很好判断,直接用:'' in ['a','b','c'],就可以直接判断出来:但是当我对字符串使用 "in" 方法进行判断的时候,发现:'' in 'abc' 仍然会返回True,对于这个问题,之前一直没有注意到过其中的原理,现在去进行探索总结一下: 首先,查看官方文档:https://docs.python.org/2/reference/expressions.html#not-in 文档在5.9.2中:Membership test o

合肥学院ACM集训队第一届暑假友谊赛 B FYZ的求婚之旅 D 计算机科学家 F 智慧码 题解

比赛网址:https://ac.nowcoder.com/acm/contest/994#question B FYZ的求婚之旅 思路: 然后用快速幂即可. 细节见代码: #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #include <queue> #include <stack>