当前位置:首页 > 工业技术
华章程序员书库  Python入门经典  以解决计算问题为导向的Python编程实践
华章程序员书库  Python入门经典  以解决计算问题为导向的Python编程实践

华章程序员书库 Python入门经典 以解决计算问题为导向的Python编程实践PDF电子书下载

工业技术

  • 电子书积分:15 积分如何计算积分?
  • 作 者:潘曲(William F. Punch),尹鲍德(Richard Enbody)著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2012
  • ISBN:7111394135
  • 页数:454 页
图书介绍:本书以数据的处理和分析为主题,强调编程的基础和实践,全面涵盖Python的特性和用法。本书分为五部分,第一部分介绍计算机设备的一般概念和一些计算机术语,;第二部分开始介绍编程的基本知识,包括入门知识和控制语句,为后续内容做铺垫。第三部分讲述数据结构和函数,包括字符串、列表和元组、、字典和集合、文件、函数、算法和程序等进阶内容,有助于读者提升编程技能;第四部分重点介绍如何使用类定义数据结构和算法、开发程序等,培养读者运用Python语言来实现基本的计算思想和策略的能力;第五部分主要介绍异常、测试和递归,旨在使读者成为更好的程序员。本书深入浅出,每一章节均给出了大量的实例、示范代码和自测练习,便于读者理解和掌握相关知识。读者通过学习本书,不仅能掌握Python语言的基本知识,还能学习如何在实践中运用该语言解决问题。
《华章程序员书库 Python入门经典 以解决计算问题为导向的Python编程实践》目录

第一部分 关于计算机的思考 1

第0章 计算机科学研究 1

0.1为什么要研究计算机科学 1

0.1.1计算机科学的重要性 1

0.1.2计算机“科学” 1

0.1.3通过编程学习计算机科学 3

0.2编程的困难和使命 3

0.2.1困难1:同时做两件事 3

0.2.2困难2:什么是好程序 5

0.2.3程序的使命 6

0.3选择一种计算机语言 6

0.3.1各种计算机语言 6

0.3.2为什么选Python 6

0.3.3 Python是最好的程序语言吗 7

0.4什么是计算 7

0.5什么是计算机 8

0.5.1自然界中的计算 8

0.5.2人类制造的计算机 10

0.6现代电子计算机 11

0.6.1就是开关 11

0.6.2晶体管 12

0.7从更高层面来了解现代计算机 16

0.8数据表示 17

0.8.1二进制数据 17

0.8.2使用二进制 18

0.8.3局限性 18

0.8.4字符表示 19

0.8.5其他数据表示 20

0.8.6数字代表什么 21

0.8.7数据量 21

0.8.8数据量有多大 21

0.9后续章节概述 22

0.10总结 22

第二部分 开始编程 23

第1章 入门 23

1.1练习,练习,再练习 23

1.2快速入门——计算圆周长的程序 24

1.3交互式会话 26

1.4程序组成部分 27

1.4.1模块 27

1.4.2表达式和语句 28

1.4.3空白 29

1.4.4注释 29

1.4.5 Python的特殊元素:标记 30

1.4.6对象命名 31

1.5变量 32

1.6对象和类型 34

1.6.1数字 36

1.6.2其他内置类型 37

1.6.3对象类型:非变量类型 38

1.6.4创建新值 39

1.7运算符 40

1.7.1整数运算符 40

1.7.2浮点运算符 41

1.7.3混合运算符 41

1.7.4运算符顺序和圆括号 42

1.7.5增强的赋值运算符:快捷方式 43

1.8第一个模块:math模块 44

1.9开发算法 45

1.10总结 47

1.11视觉场景:海龟绘图 47

习题 48

编程项目 50

第2章 控制语句 52

2.1选择语句:if 52

2.1.1利用布尔值做决定 52

2.1.2 if语句 53

2.1.3示例:在篮球运动中,领先多少分才安全 53

2.1.4循环 58

2.1.5例子:寻找完全数 60

2.1.6例子:对数字分类 63

2.2深入控制语句 65

2.2.1真与假:布尔值 65

2.2.2布尔变量 66

2.2.3关系运算符 66

2.2.4布尔运算符 69

2.2.5优先级 71

2.2.6布尔运算符示例 71

2.2.7另一种赋值方式 73

2.2.8用于判定的选择语句 75

2.2.9 Python判定语句进阶 76

2.2.10循环:while语句 78

2.2.11信号量循环 84

2.2.12循环总结 85

2.2.13 for语句进阶 85

2.2.14嵌套 87

2.2.15 冰雹序列示例 88

2.3视觉场景:用pylab对数据绘图 89

2.3.1使用列表和第一次绘制 89

2.3.2更有趣的绘图:正弦波 91

2.4计算机科学观点:最小的通用计算 92

2.5总结 93

习题 93

编程项目 97

第3章 算法和程序开发 99

3.1什么是算法 99

3.2算法特征 100

3.2.1算法和程序 100

3.2.2细化 101

3.2.3有效性 101

3.2.4指定行为 102

3.2.5通用算法 102

3.2.6真的可以实现一切吗 102

3.3程序是什么 102

3.3.1可读性 102

3.2.2鲁棒性 105

3.3.3正确性 105

3.4程序设计策略 105

3.4.1参与并提交 106

3.4.2了解,然后想象 106

3.4.3编程之前先思考 107

3.4.4实验 107

3.4.5简化 107

3.4.6停下来思考 108

3.4.7放松:让自己休息一下 108

3.5简单示例 109

3.5.1搭建框架 109

3.5.2输出 109

3.5.3输入 110

3.5.4计算 112

3.6总结 116

习题 116

第三部分 组织:数据结构和函数 117

第4章 字符串 117

4.1字符串类型 117

4.1.1三重引号字符串 118

4.1.2非显示字符 118

4.1.3字符串表示形式 118

4.1.4字符序列 119

4.1.5索引和分片 120

4.2字符串操作 123

4.2.1连接(+)和重复(*) 123

4.2.2“+”什么时候表示加法运算,什么时候表示连接运算 124

4.2.3比较运算符 125

4.2.4 in运算符 126

4.2.5字符串集合是不可变的 126

4.3函数和方法预览 127

4.3.1第一步:什么是函数 127

4.3.2选择方法的名字和参数 130

4.3.3字符串方法 131

4.3.4字符串函数 132

4.4字符串的格式化输出 132

4.4.1描述符码 133

4.4.2宽度描述符 133

4.4.3浮点数精度描述符 134

4.5字符串与控制语句 134

4.6处理字符串 137

4.6.1示例:记录人名 137

4.6.2回文 139

4.7示例:计算扑克牌 141

4.8总结 148

习题 148

编程项目 151

第5章 函数快速入门 154

5.1函数是什么 154

5.2 Python函数 155

5.3函数控制语句 157

5.3.1函数控制语句详解 157

5.3.2另一个函数示例 159

5.3.3函数示例:猜词 160

5.3.4函数调用函数 164

5.3.5什么时候使用函数 164

5.3.6如果没有return语句会如何 165

5.3.7如果有多条return语句会如何 165

5.4视觉场景:用海龟绘图法绘制美国国旗 166

5.5总结 166

习题 166

编程项目 169

第6章 列表和元组 171

6.1什么是列表 171

6.2操作列表 172

6.2.1索引和分片 172

6.2.2运算符 173

6.2.3函数 174

6.2.4列表循环 175

6.3列表新内容 175

6.3.1列表可变性 175

6.3.2列表方法 176

6.4 range、split及其他函数和方法 178

6.4.1 range、split和多重赋值 178

6.4.2使用join在列表和字符串之间转换 179

6.4.3 sorted函数 180

6.5示例 181

6.5.1字谜 181

6.5.2示例:文件分析 184

6.6可变对象及其引用 187

6.6.1深拷贝与浅拷贝 191

6.6.2可变与不可变 192

6.7元组 193

6.7.1从列表到元组 194

6.7.2为什么需要元组 195

6.8列表:数据结构 195

6.8.1数据结构示例 196

6.8.2数据结构的另一个示例 196

6.9算法示例:美国环境保护署通车里程数据 197

6.10列表解析 204

6.11视觉场景:更多绘制任务 205

6.11.1 numpy阵列 205

6.11.2绘制三角函数 207

6.12总结 207

习题 207

编程项目 213

第7章 深入了解函数 217

7.1函数调用函数 217

7.2作用域 219

7.2.1实参、形参和命名空间 220

7.2.2传递可变对象 221

7.2.3返回复杂对象 223

7.2.4重构evens 224

7.3默认值以及形参为关键字 225

7.3.1示例:默认值和参数关键字 225

7.3.2默认值问题 226

7.4函数和对象 227

7.5示例:确定最终成绩 228

7.5.1数据 228

7.5.2设计 229

7.5.3函数:weightedGrade 229

7.5.4函数:grade 230

7.5.5函数:main 230

7.5.6使用示例 231

7.6“传值”或者“传引用” 231

7.7总结 231

习题 231

编程项目 234

第8章 字典和集合 236

8.1字典 236

8.1.1字典示例 236

8.1.2 Python字典 237

8.1.3字典索引和赋值 237

8.1.4运算符 238

8.2单词计数示例 241

8.2.1统计字符串中的单词数 241

8.2.2《葛底斯堡演说》中的单词出现频率 241

8.2.3输出和注释 244

8.3示例:周期表 245

8.3.1使用CSV文件 245

8.3.2算法概述 246

8.3.3实现分治的函数 246

8.4集合 250

8.4.1集合的历史 250

8.4.2集合的组成 250

8.4.3 Python集合 250

8.4.4 Python集合的方法、运算符和函数 251

8.4.5集合方法 251

8.5集合应用 255

8.5.1不同文件中单词之间的关系 255

8.5.2输出和注释 257

8.6作用域:完整的故事 258

8.6.1命名空间和作用域 258

8.6.2作用域搜寻规则 258

8.6.3局部命名空间 258

8.6.4全局命名空间 259

8.6.5内置模块 262

8.6.6封闭式变量 262

8.7 Python指针:使用zip创建字典 263

8.8视觉场景:词频条形图 264

8.8.1正确获取数据 264

8.8.2标签和xticks命令 265

8.8.3绘图 265

8.9总结 266

习题 266

编程项目 270

第9章 文件 272

9.1什么是文件 272

9.2存取文件:读取文本文件 272

9.2.1其他文件存取方法 273

9.2.2数据流 274

9.3存取文件:写文本文件 274

9.4在程序中存取文本文件 275

9.5创建文件和重写文件 276

9.5.1通用新行格式 276

9.5.2文件内移动 277

9.6关闭文件 278

9.7 CSV文件 278

9.7.1 CSV模块 279

9.7.2 CSV Reader 279

9.7.3 CSV Writer 280

9.7.4示例:更新某些成绩 280

9.8示例:反复提示,要求输入正确的文件名 282

9.9模块:os 283

9.9.1目录/文件夹的结构 284

9.9.2os模块函数 285

9.9.3 os模块示例 286

9.10总结 288

习题 288

编程项目 289

第10章 程序开发进阶 291

10.1简介 291

10.2分治 291

10.3乳腺癌分类 291

10.3.1问题 292

10.3.2方法:分类 292

10.3.3训练和测试分类器 292

10.3.4构造分类器 292

10.4设计分类器算法 294

10.4.1先分解,再合并 296

10.4.2数据结构 296

10.4.3文件格式 296

10.4.4 makeTrainingSet函数 297

10.4.5 makeTestSet函数 300

10.4.6 trainClassifier函数 300

10.4.7第2轮修改后的trainClassifer 302

10.4.8用新数据测试分类器 304

10.4.9 reportResults函数 308

10.5在完整数据上运行分类器 309

10.6其他有趣的问题 312

10.6.1标签云 312

10.6.2标准普尔500预测 313

10.6.3用国旗预测宗教 315

10.7总结 316

习题 316

编程项目 316

第四部分类:自定义数据结构和算法 319

第11章类 319

11.1面向对象编程 319

11.1.1 Python是面向对象的 320

11.1.2 OOP特性 320

11.2使用OOP 320

11.3使用类和实例 321

11.3.1内置类和实例 321

11.3.2第一个类 322

11.3.3修改属性 323

11.3.4实例和类之间的特殊关系:instance-of 324

11.4对象方法 326

11.4.1使用对象方法 326

11.4.2编写方法 327

11.4.3特殊参数self 328

11.4.4方法是类实例的接口 329

11.5融入Python类模型 330

11.5.1程序员定义的类 330

11.5.2 Student类 330

11.5.3 Pyhon标准方法 331

11.5.4三种角色:类设计者、程序员和用户 334

11.6示例:Point类 334

11.6.1构造函数 335

11.6.2距离 335

11.6.3两点求和 336

11.6.4改进Point类 336

11.7 Pyhon和OOP 338

11.7.1封装性 338

11.7.2继承 338

11.7.3多态性 338

11.8 Python和其他OOP语言 338

11.8.1公有与私有 338

11.8.2使用双下划线表示私有 339

11.8.3 Pyhon的宗旨 340

11.8.4修改实例 340

11.9总结 340

习题 340

编程项目 341

第12章 类进阶 344

12.1更多类属性 344

12.2 Python实现机制 345

12.2.1类、类型与自检 345

12.2.2运算符重载 347

12.3自定义运算符重载 347

12.4创建有理数类 349

12.4.1生成类 350

12.4.2分数加法回顾 351

12.4.3分数加法 353

12.4.4相等和分数化简 356

12.4.5应用分治 358

12.5错误消息 358

12.5.1自检 359

12.5.2修复int+Rational错误 361

12.6继承 362

12.6.1“寻找属性”游戏 362

12.6.2使用继承 364

12.6.3实例:物理学标准模型 365

12.7总结 369

习题 369

第13章 使用类开发程序 372

13.1捕食问题 372

13.1.1规则 372

13.1.2面向对象的模拟 373

13.2类 373

13.2.1 Island类 373

13.2.2捕食者和猎物、动物种类 375

13.2.3捕食者类和猎物类 377

13.2.4对象图 378

13.2.5填充Island 378

13.3添加行为 380

13.3.1细化:添加移动 380

13.3.2时间循环仿真 382

13.4逐步求精 383

13.4.1改进的时间循环 383

13.4.2繁殖 385

13.4.3进食 387

13.4.4时钟节拍 388

13.5细化问题 388

13.5.1移动多少次 388

13.5.2动物数量的图形化 389

13.6总结 390

习题 390

第五部分 成为更好的程序员 391

第14章 异常和异常处理 391

14.1简介 391

14.2基本的异常处理 392

14.3有关异常的哲学 395

14.4异常:else和finally 396

14.5异常的用法 398

14.5.1检查输入 398

14.5.2检查文件打开 399

14.6深入异常 399

14.6.1 raise 399

14.6.2自定义异常 400

14.7示例:密码管理 400

14.8总结 403

习题 403

第15章 测试 405

15.1为什么要进行测试 405

15.1.1错误类型 405

15.1.2 “bug”和调试 406

15.2测试类型 407

15.2.1测试很难 407

15.2.2测试的重要性 408

15.3示例 408

15.3.1 NBA效率 408

15.3.2基本算法 408

15.4混合测试 411

15.4.1捕捉用户错误 411

15.4.2捕获开发者犯的错误 412

15.5自动测试 413

15.5.1 doctest 414

15.5.2其他类型的测试 416

15.6总结 416

习题 416

第16章 递归:另一种控制机制 417

16.1什么是递归 417

16.2数学和兔子 418

16.3自定义递归:反转字符串 420

16.4递归如何实现 422

16.4.1栈的数据结构 422

16.4.2栈和函数调用 424

16.5用递归表示图形 425

16.5.1递归树 425

16.5.2 Sierpinski三角形 427

16.6从递归到非递归 428

16.7总结 428

16.8习题 428

附录 431

附录A开始使用Python 431

附录B用海龟绘图法进行简单绘图 439

附录C绘图和数值工具:快速浏览 442

附录D Python 3.0 451

附录E ASCII码表 453

附录F优先级 454

相关图书
作者其它书籍
返回顶部