华章程序员书库 Python入门经典 以解决计算问题为导向的Python编程实践PDF电子书下载
- 电子书积分:15 积分如何计算积分?
- 作 者:潘曲(William F. Punch),尹鲍德(Richard Enbody)著
- 出 版 社:北京:机械工业出版社
- 出版年份:2012
- ISBN:7111394135
- 页数:454 页
第一部分 关于计算机的思考 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
- 《HTML5从入门到精通 第3版》(中国)明日科技 2019
- 《少儿电子琴入门教程 双色图解版》灌木文化 2019
- 《区块链DAPP开发入门、代码实现、场景应用》李万胜著 2019
- 《Python3从入门到实战》董洪伟 2019
- 《语文教育教学实践探索》陈德收 2018
- 《彼得·布鲁克导演实践研究》邓小玲著 2019
- 《反思性实践》胡红梅, 2019
- 《程序逻辑及C语言编程》卢卫中,杨丽芳主编 2019
- 《高含硫气藏开发腐蚀控制技术与实践》唐永帆,张强 2018
- 《环境影响评价公众参与理论与实践研究》樊春燕主编 2019
- 《莎士比亚戏剧精选集》(英)威廉·莎士比亚(William Shakespeare)著 2020
- 《法国家庭法精要 第17版》陈妮责任编辑;石雷译;(法国)科琳·雷诺-布拉尹思吉 2019
- 《心中的歌 献给中老年的歌曲钢琴弹唱精品集 上》尹德本,蒋泓,于永纯,尹青,孙阿瑶著 2017
- 《皆大欢喜》(英)威廉·莎士比亚(William Shakespeare)著 2019
- 《来画石头吧 方寸之间挥洒你的奇思妙想》(土)F.塞纳兹·拜克著 2019
- 《心中的歌 中老年歌曲钢琴弹唱精品集 下》尹德本,蒋泓,于永纯著 2017
- 《菊芋的生物学和化学》(美)斯坦利·J.凯斯(Stanley J.Kays),(英)史蒂芬·F.诺丁汉著 2018
- 《博士生教育的变迁》(澳)大卫·鲍德(David Boud),(澳)艾莉森·李(Alison Lee)编 2019
- 《经济学基础教程 第3版》尹伯成主编 2020
- 《宏观经济学简明教程》尹伯成 2020
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017
- 《新工业时代 世界级工业家张毓强和他的“新石头记”》秦朔 2019
- 《智能制造高技能人才培养规划丛书 ABB工业机器人虚拟仿真教程》(中国)工控帮教研组 2019
- 《AutoCAD机械设计实例精解 2019中文版》北京兆迪科技有限公司编著 2019