《程序设计导论 PYTHON计算与应用开发实践》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:(美)卢博米尔·佩尔科维奇(LJUBOMIR PERKOVIC)著;江红,余青松译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2019
  • ISBN:7111611608
  • 页数:378 页
图书介绍:本书不仅仅是传统的程序设计导论性教材,而且囊括了包罗万象的计算机科学。书中采用Python作为学生的第一门程序设计语言,提出“正确的时刻+正确的工具”的教学方法,尤为重视应用程序的开发训练和计算思维的培养,同时提供了大量基于Python交互式命令行的示例,易于教学和实践。书中首先讲解命令式编程,但也很早便引入了对象的概念;在学生具备足够的基础知识也更有学习动力之后,书中开始讲解自定义类、面向对象编程等更多高级技巧。书中涵盖了问题求解的核心技术和各类经典算法,这一版还增加了案例章节,所涉及的广度也有所拓展。

第1章 计算机科学导论 1

1.1计算机科学 1

1.1.1计算机专业人员的工作 1

1.1.2模型、算法和程序 2

1.1.3必备的工具 3

1.1.4什么是计算机科学 3

1.2计算机系统 3

1.2.1计算机硬件 3

1.2.2操作系统 4

1.2.3网络和网络协议 5

1.2.4程序开发语言 5

1.2.5软件库 6

1.3 Python程序设计语言 6

1.3.1 Python简史 6

1.3.2构建Python开发环境 7

1.4计算思维 7

1.4.1一个示例问题 8

1.4.2抽象和建模 8

1.4.3算法 9

1.4.4数据类型 9

1.4.5赋值语句和执行控制结构 10

1.4.6本章小结 11

第2章Python数据类型 12

2.1表达式、变量和赋值语句 12

2.1.1代数表达式和函数 12

2.1.2布尔表达式和运算符 14

2.1.3变量和赋值语句 16

2.1.4变量名称 18

2.2字符串 18

2.2.1字符串运算符 19

2.2.2索引运算符 21

2.3列表和元组 22

2.3.1列表运算符 22

2.3.2列表是可变类型,字符串是不可变类型 24

2.3.3元组 24

2.3.4元组和列表的方法 26

2.4对象和类 28

2.4.1对象类型 28

2.4.2数值类型的有效值 29

2.4.3数值类型的运算符 30

2.4.4创建对象 32

2.4.5隐式类型转换 32

2.4.6显式类型转换 33

2.4.7类方法和面向对象的程序设计 34

2.5 Python标准库 35

2.5.1 math模块 35

2.5.2 fractions模块 36

2.6电子教程案例研究:海龟图形 37

2.7本章小结 37

2.8练习题答案 37

2.9习题 39

第3章 命令式编程 43

3.1 Python程序 43

3.1.1我们的第一个Python程序 43

3.1.2 Python模块 45

3.1.3内置函数print() 45

3.1.4使用input()函数实现交互式输入 46

3.1.5 eval ()函数 47

3.2执行控制结构 47

3.2.1单分支结构 48

3.2.2双分支结构 51

3.2.3循环结构 52

3.2.4嵌套的控制流结构 55

3.2.5 range()函数 55

3.3用户自定义函数 57

3.3.1我们自定义的第一个函数 57

3.3.2函数输入参数 58

3.3.3 print()与return的比较 59

3.3.4函数定义实际上是“赋值”语句 60

3.3.5注释 61

3.3.6文档字符串 61

3.4 Python变量和赋值语句 63

3.4.1可变类型和不可变类型 63

3.4.2赋值语句和可变性 65

3.4.3交换 66

3.5参数传递 67

3.5.1不可变类型参数传递 67

3.5.2可变类型参数传递 69

3.6电子教程案例研究:自动化海龟图形 70

3.7本章小结 70

3.8练习题答案 70

3.9习题 73

3.10思考题 74

第4章 文本数据、文件和异常 77

4.1深入研究字符串 77

4.1.1字符串表示 77

4.1.2深入研究索引运算符 79

4.1.3字符串方法 80

4.2格式化输出 83

4.2.1函数print () 83

4.2.2字符串方法format() 84

4.2.3按列对齐排列数据 86

4.2.4获取与格式化日期和时间 89

4.3文件 91

4.3.1文件系统 91

4.3.2打开和关闭文件 92

4.3.3读取文本文件的模式 96

4.3.4写入文本文件 98

4.4错误和异常 99

4.4.1语法错误 100

4.4.2内置异常 100

4.5电子教程案例研究:图像文件 102

4.6本章小结 102

4.7练习题答案 103

4.8习题 104

4.9思考题 106

第5章 执行控制结构 108

5.1选择控制和if语句 108

5.1.1三路以及多路分支 108

5.1.2条件的排列顺序 110

5.2 for循环和迭代模式 111

5.2.1循环模式:迭代循环 111

5.2.2循环模式:计数器循环 112

5.2.3循环模式:累加器循环 114

5.2.4其他类型的累加 115

5.2.5循环模式:嵌套循环 117

5.3深入研究列表:二维列表 119

5.3.1二维列表 119

5.3.2二维列表和嵌套循环模式 120

5.4 while循环 122

5.5更多循环模式 124

5.5.1循环模式:序列循环 124

5.5.2循环模式:无限循环 125

5.5.3循环模式:循环和折半 126

5.6其他迭代控制语句 127

5.6.1 break语句 127

5.6.2 continue语句 128

5.6.3 pass语句 129

5.7电子教程案例研究:图像处理 129

5.8本章小结 130

5.9练习题答案 130

5.10习题 133

5.11思考题 134

第6章 容器和随机性 140

6.1字典 140

6.1.1用户自定义索引作为字典的动机 140

6.1.2字典类属性 141

6.1.3字典运算符 143

6.1.4字典方法 144

6.1.5字典作为多路分支if语句的替代方法 146

6.1.6字典作为计数器集合 147

6.1.7元组对象可以作为字典的键 149

6.2集合 150

6.2.1使用set构造函数移除重复项 151

6.2.2 set运算符 152

6.2.3 set方法 153

6.3字符编码和字符串 154

6.3.1字符编码 154

6.3.2 ASCII 154

6.3.3 Unicode 156

6.3.4 Unicode字符的UTF-8编码 158

6.4 random模块 158

6.4.1选择一个随机整数 159

6.4.2选择一个随机“实数” 160

6.4.3随机混排、挑选和抽样 161

6.5电子教程案例研究:机会游戏 161

6.6本章小结 162

6.7练习题答案 162

6.8习题 165

6.9思考题 166

第7章 名称空间 171

7.1函数封装 171

7.1.1代码重用 172

7.1.2模块化 172

7.1.3封装 172

7.1.4局部变量 172

7.1.5与函数调用相关的名称空间 173

7.1.6名称空间与程序栈 174

7.2全局名称空间和局部名称空间 177

7.2.1全局变量 178

7.2.2局部作用范围的变量 178

7.2.3全局作用范围的变量 179

7.2.4在函数中改变全局变量 180

7.3异常控制流 181

7.3.1异常和异常控制流 182

7.3.2捕获和处理异常 183

7.3.3默认异常处理程序 184

7.3.4捕获给定类型的异常 184

7.3.5多重异常处理程序 185

7.3.6控制异常流 186

7.4模块作为名称空间 189

7.4.1模块属性 189

7.4.2导入模块时发生了什么 190

7.4.3模块搜索路径 190

7.4.4顶层模块 192

7.4.5导入模块属性的不同方法 193

7.5 类作为名称空间 195

7.5.1一个类是一个名称空间 195

7.5.2类方法是在类名称空间中定义的函数 196

7.6电子教程案例研究:使用调试器进行调试 197

7.7本章小结 197

7.8练习题答案 197

7.9习题 199

7.10思考题 200

第8章 面向对象的程序设计 202

8.1定义新的Python类 202

8.1.1类Point的方法 202

8.1.2类和名称空间 203

8.1.3每个对象都有一个关联的名称空间 204

8.1.4类Point的实现 204

8.1.5实例变量 206

8.1.6实例继承类属性 206

8.1.7类定义的一般格式 207

8.1.8编写类的文档 208

8.1.9类Animal 208

8.2用户自定义类示例 210

8.2.1构造函数重载 210

8.2.2默认构造函数 211

8.2.3扑克牌类 212

8.3设计新的容器类 213

8.3.1设计一个表示一副扑克牌的类 213

8.3.2实现Deck类 214

8.3.3容器类Queue 215

8.3.4实现Queue类 216

8.4运算符重载 217

8.4.1运算符是类方法 218

8.4.2使Point类对用户友好 220

8.4.3构造函数和repr()运算符之间的约定 221

8.4.4使Queue类对用户友好 223

8.5继承 225

8.5.1继承类的属性 225

8.5.2类定义的一般格式 227

8.5.3重写父类方法 227

8.5.4扩展父类方法 229

8.5.5通过继承list实现一个Queue类 231

8.6用户自定义异常 232

8.6.1抛出一个异常 232

8.6.2用户自定义异常类 233

8.6.3改进类Queue的封装 234

8.7电子教程案例研究:索引和迭代器 234

8.8本章小结 235

8.9练习题答案 235

8.10习题 237

8.11思考题 239

第9章 图形用户界面 246

9.1 tkinter图形用户界面开发基本知识 246

9.1.1组件Tk: GUI窗口 246

9.1.2组件Label:显示文本 247

9.1.3显示图像 248

9.1.4布局组件 249

9.1.5将组件布局为表格 251

9.2基于事件的tkinter组件 253

9.2.1 Button组件及事件处理程序 253

9.2.2事件、事件处理程序和mainloop() 255

9.2.3 Entry组件 256

9.2.4 Text组件和绑定事件 258

9.2.5事件模式和tkinter类Event 259

9.3设计图形用户界面 261

9.3.1组件Canvas 261

9.3.2作为组织容器的组件Frame 264

9.4面向对象的图形用户界面 265

9.4.1 GUI面向对象程序设计基本知识 266

9.4.2把共享组件赋值给实例变量 268

9.4.3把共享数据赋值给实例变量 269

9.5电子教程案例研究:开发一个计算器 271

9.6本章小结 271

9.7练习题答案 271

9.8 习题 275

9.9思考题 275

第10章 递归 278

10.1递归简介 278

10.1.1调用自身的函数 278

10.1.2停止条件 279

10.1.3递归函数的特性 280

10.1.4递归思想 281

10.1.5递归函数调用和程序栈 282

10.2递归示例 284

10.2.1递归数列模式 284

10.2.2分形图形 286

10.2.3病毒扫描 289

10.2.4线性递归 292

10.3运行时间分析 294

10.3.1指数函数 294

10.3.2运算次数 295

10.3.3斐波那契数列 296

10.3.4运行时间的实验分析 298

10.4查找 300

10.4.1线性查找 300

10.4.2二分查找 301

10.4.3线性查找和二分查找比较 303

10.4.4唯一性测试 304

10.4.5选择第k个最大(或最小)项 305

10.4.6计算出现频率最多的项 305

10.5电子教程案例研究:汉诺塔 306

10.6本章小结 306

10.7练习题答案 306

10.8习题 308

10.9思考题 309

第11章Web和搜索 315

11.1万维网 315

11.1.1 Web服务器和Web客户端 315

11.1.2 WWW的“管道” 316

11.1.3命名方案:统一资源定位器 316

11.1.4协议:超文本传输协议 317

11.1.5超文本标记语言 318

11.1.6 HTML元素 318

11.1.7 HTM L文档的树结构 320

11.1.8锚点HTML元素和绝对链接 320

11.1.9相对链接 321

11.2 Python WWW API 321

11.2.1模块urllib.request 322

11.2.2模块html.parser 324

11.2.3重载HTMLParser处理程序 325

11.2.4模块urllib.parse 327

11.2.5收集HTTP超链接的解析器 327

11.3字符串模式匹配 329

11.3.1正则表达式 329

11.3.2 Python标准库模块re 332

11.4电子教程案例研究:Web爬虫 333

11.5本章小结 333

11.6练习题答案 334

11.7习题 335

11.8思考题 336

第12章 数据库和数据处理 339

12.1数据库和SQl 339

12.1.1数据库表 339

12.1.2结构化查询语言 341

12.1.3 SELECT语句 341

12.1.4 WHERE子句 343

12.1.5内置SQL函数 345

12.1.6 GROUP BY子句 345

12.1.7多表SQL查询 346

12.1.8 CREATE TABLE语句 347

12.1.9INSERT和UPDATE语句 348

12.2 Python中的数据库编程 349

12.2.1数据库引擎和SQLite 349

12.2.2使用sqlite3创建一个数据库 349

12.2.3提交数据库更改和关闭数据库 351

12.2.4使用sqlite3查询数据库 351

12.3函数语言方法 353

12.3.1列表解析 354

12.3.2 MapReduce 问题求解框架 355

12.3.3 MapReduce的抽象概念 358

12.3.4倒排索引 359

12.4并行计算 361

12.4.1并行计算简介 362

12.4.2 multiprocessing模块中的Pool类 362

12.4.3并行加速比 364

12.4.4并行MapReduce 366

12.4.5并行和顺序MapReduce 366

12.5电子教程案例研究:数据交换 369

12.6本章小结 369

12.7练习题答案 369

12.8习题 372

12.9思考题 373