Python3.6编程实践指南 计算机入门(原书第3版) [Practical Programming: An Introduction to Computer]这本书,是由机械工业出版社在2018-12-01月出版的,本书著作者是 Paul Gries,Jennifer Campbell,Jason Montojo 著,乔海燕 译,此次本版是第1次印刷发行, 国际标准书号(ISBN):9787111609940,品牌为机工出版, 这本书的包装是16开平装,所用纸张为胶版纸,全书共有316页字数46万5000字, 是一本非常不错的Python编程书籍。
此书内容摘要
《Python3.6编程实践指南——计算机入门》(原书第3版)通过Python语言介绍了编程的基本知识,内容包括现代编程语言常用的各种数据存储和基本处理方法,如数值、字符串、列表、集合、字典和文本信息;程序的条件和循环控制结构;函数的概念、定义和应用;编程方法以及测试和调试思路。本书也介绍了一些更高级的编程知识,包括面向对象的编程方法、图形用户界面的构建以及数据库的处理。
关于此书作者
Paul Gries在多伦多大学计算机系有超过15年的教学经验。在多伦多大学期间,Paul获得过许多教学奖,合作出版了两部教材,而且一直是本系课程设计和更新的ipipgo。他和Jennifer Campbell在MOOC给成千上万的学生讲授Python。
Jennifer Campbell是多伦多大学在计算机方面的教学系列教授。她在2014年获得文理学院杰出教学奖。Jennifer致力于计算机教育研究,研究学生体验、成功因素和各种课程的有效性,包括翻转课堂和在线课堂。
Jason Montojo 是具有19年职业经验的软件开发者。他的专业是软件考古学,而且在谷歌编程之夏和软件学徒计划(Software Carpentry programs)中指导过几十位学生。
编辑们的推荐
适读人群 :初学Python语言的程序员,高等院校相关专业的本科生,对Python编程感兴趣的初学者
1)多伦多大学教授带来的经典编程入门书,基于Python3.6,数万学生课堂使用。
2)无需任何编程经验!循序渐进的例子帮助读者理解设计程序过程的步骤和错误,使得读者能够独立解决自己的问题。
3)使用了Python3.6新增加的特性,包括参数的类型注释,返回类型和变量声明,以及字符串格式化的新变化。
4)通过阅读本书,读者将学会如何像职业程序员那样思考问题。
5)所有源代码、安装指引和习题解都可以在以下网站找到:http://pragprog.com/book/gwpy3/practical-programming。
Python3.6编程实践指南 计算机入门(原书第3版) [Practical Programming: An Introduction to Computer]图书的目录
译者序
原书前言
致谢
作者简介
第1 章 什么是编程 // 1
1.1程序和编程 //2
1.2什么是编程语言 //3
1.3什么是程序错误(Bug) //3
1.4方括号、圆括号和花括号的区别 //4
1.5安装Python //4
第2 章 你好,Python // 5
2.1计算机如何运行一个Python 程序 //5
2.2表达式和值:用Python 做算术 //6
2.2.1类型 // 7
2.2.2整数除法、模和幂运算 // 8
2.3什么是类型 //9
2.3.1有穷精度 // 10
2.3.2运算的优先级 // 10
2.4变量和计算机内存:记忆值 //12
2.4.1值、变量和计算机内存 // 13
2.4.2赋值语句 // 14
2.4.3给变量重新赋值 // 15
2.4.4增强赋值 // 16
2.5Python 如何告诉用户出错了 //18
2.6占多行的单个语句 //19
2.7代码的描述 //20
2.8增强代码的可读性 //21
2.9本章小结 //21
2.10习题 //22
第3 章 函数的设计与应用 // 24
3.1Python 提供的函数 //24
3.2 内存地址:Python 如何跟踪内存存储的值 //27
3.3自定义函数 //28
3.4用局部变量作临时存储 //31
3.5在内存模型中跟踪函数调用 //32
3.6设计新函数:一个菜单 //38
3.6.1设计三个有关生日的函数 // 40
3.7编写和运行一个程序 //48
3.8省略一个返回语句:暂无. //50
3.9处理代码不能处理的情况 //50
3.10本章小结 //51
3.11习题 //52
第4 章 文本的处理 // 54
4.1构造字符串 //54
4.1.1串上的操作 // 55
4.2在串中使用特殊字符 //57
4.3构建多行串 //58
4.4打印信息 //59
4.5从键盘获取信息 //62
4.6本章小结 //63
4.7习题 //63
第5 章 选择 // 65
5.1布尔类型 //65
5.1.1布尔运算 // 65
5.1.2关系运算 // 68
5.1.3比较运算的组合 // 70
5.1.4短路求值 // 72
5.1.5串的比较 // 72
5.2选择执行的语句 //73
5.3嵌套条件语句 //79
5.4记住一个布尔表达式求值的结果 //79
5.5本章小结 //81
5.6习题 //81
第6 章 程序组织的模块化方法 // 84
6.1导入模块 //85
6.2定义自己的模块 //89
6.2.1导入时发生了什么 // 90
6.2.2在导入时选择要运行的代码:__main__ // 91
6.3半自动地测试代码 //95
6.4函数分组的原则 //96
6.5本章小结 //96
6.6习题 //97
第7 章 方法的使用 // 98
7.1模块、类和方法 //98
7.2面向对象的调用方法 //100
7.3探索字符串方法 //101
7.4那些下划线是什么 //105
7.5本章小结 //107
7.6习题 //107
第8 章 使用列表存储数据集合 // 109
8.1存储和访问列表中的数据 //109
8.1.1空列表 // 111
8.1.2列表是异构的 // 111
8.2列表类型注释 //112
8.3修改列表 //113
8.4列表上的操作 //114
8.4.1列表上的in 操作符 // 116
8.5列表切片 //116
8.6使用别名:名称代表什么 //118
8.6.1可变参数 // 118
8.7列表方法 //120
8.8处理列表的列表 //121
8.9本章小结 //123
8.10习题 //123
第9 章 使用循环重复代码 // 126
9.1处理列表中的数据项 //126
9.2处理字符串中的字符 //128
9.3在某个范围的数字上循环 //128
9.3.1生成数字范围 // 128
9.4用索引处理列表 //130
9.4.1使用索引处理并行列表 // 132
9.5循环嵌套循环 //133
9.5.1嵌套列表上的循环 // 134
9.5.2循环不规则列表 // 135
9.6循环直到某个条件成立 //136
9.6.1无限循环 // 138
9.7基于用户输入的重复 //138
9.8 使用break 和continue 控制循环 //139
9.8.1break 语句 // 139
9.8.2continue 语句 // 141
9.8.3 关于break 和continue的警告 // 142
9.9本章小结 //143
9.10习题 //143
第10 章 文件读写 // 146
10.1文件分多少种 //146
10.2打开文件 //147
10.2.1with 语句 // 148
10.2.2计算机上的文件是如何组织的 // 149
10.2.3指定想要的文件 // 149
10.3读取文件的方法 //150
10.3.1读取方法 // 150
10.3.2Readlines 方法 // 151
10.3.3″For Line in File” 方法 // 152
10.3.4Readline 方法 // 153
10.4互联网上的文件 //155
10.5写入文件 //156
10.6使用StringIO 编写示例调用 //157
10.7 编写使用文件读取技术的算法 //159
10.7.1跳过标题 // 159
10.7.2处理数据中缺失的值 // 161
10.7.3处理空格分隔的数据 // 163
10.8多行记录 //167
10.9向前看 //170
10.10本章小结 //172
10.11习题 //172
第11 章 使用其他容器类型存储数据 // 174
11.1使用集合存储数据 //174
11.1.1集合运算 // 176
11.1.2集合示例:北极鸟 // 178
11.1.3集合的内容一定是不可变的 // 179
11.2使用多元组存储数据 //179
11.2.1使用多元组赋值给多个变量 // 183
11.3用字典存储数据 //184
11.3.1更新和检查成员 // 186
11.3.2遍历字典 // 187
11.3.3字典操作 // 188
11.3.4字典示例 // 190
11.4反转字典 //191
11.5在元组、集合和字典中使用in运算符 //192
11.6各种容器的比较 //193
11.7创建新的类型注释 //193
11.8本章小结 //194
11.9习题 //195
第12 章 算法的设计 // 197
12.1查找两个最小值 //197
12.1.1查找、移除、查找 // 199
12.1.2 排序、确定最小值、获取索引 // 201
12.1.3遍历列表 // 202
12.2定时功能 //205
12.3本章小结 //207
12.4习题 //207
第13 章搜索与排序 // 209
13.1搜索列表 //209
13.1.1线性搜索概述 // 209
13.1.2 线性搜索的while 循环版本 // 211
13.1.3线性搜索的for 循环版本 // 212
13.1.4哨兵搜索 // 213
13.1.5对搜索进行计时 // 214
13.1.6线性搜索的运行时间 // 215
13.2二分搜索 //215
13.2.1二分搜索的运行时间 // 219
13.2.2内置二分搜索 // 219
13.3排序 //220
13.3.1选择排序 // 221
13.3.2插入排序 // 225
13.3.3性能 // 227
13.4更高效的排序算法 //229
13.4.1第一次尝试 // 229
13.5 归并排序:一种快速排序算法 //229
13.5.1归并两个有序列表 // 230
13.5.2归并排序 // 230
13.5.3归并排序的分析 // 232
13.6本章小结 //233
13.7习题 //234
第14 章面向对象的编程 // 236
14.1理解一个问题域 //236
14.2 isinstance 函数、object 类和Book 类 //237
14.3在Book 类中编写一个方法 //240
14.4 使用Python 语法:更多特殊的方法 //246
14.5面向对象理论的一些知识 //249
14.5.1封装 // 249
14.5.2多态 // 250
14.5.3继承 // 251
14.6 案例学习:分子、原子和PDB文件 //254
14.6.1Atom 类 // 255
14.6.2Molecule 类 // 256
14.7本章小结 //258
14.8习题 //258
第15 章测试与调试 // 262
15.1为什么需要做程序测试 //262
15.2 案例学习:测试above_freezing //263
15.2.1 为above_freezing 选择测试样例 // 263
15.2.2 使用unittest 模块测试above_freezing // 264
15.3 案例学习:测试函数running_sum //267
15.3.1 为函数running_sum 选择测试样例 // 268
15.3.2 使用unittest 模块测试running_sum 函数 // 268
15.4选择测试样例 //273
15.5寻找程序错误 //273
15.6本章小结 //274
15.7习题 //274
第16 章 创建图形用户接口 // 277
16.1使用tkinter 模块 //277
16.2构建一个基本的GUI //278
16.2.1 在小部件中使用可修改变量 // 279
16.2.2 使用框架类型来组合小部件 // 280
16.2.3 使用输入框类型从用户处获取信息 // 281
16.3模型、视图和控制器 //281
16.3.1使用Lambda // 283
16.4自定义可视化样式 //286
16.4.1改变字体 // 286
16.4.2改变颜色 // 286
16.4.3小部件的布局 // 288
16.5其他小部件简介 //289
16.5.1使用文本 // 289
16.5.2使用复选按钮 // 290
16.5.3使用菜单 // 291
16.6面向对象的GUI //292
16.7本章小结 //293
16.8习题 //294
第17 章 数据库 // 295
17.1概述 //295
17.2创建和填充 //296
17.2.1保存更改 // 298
17.2.2关闭连接 // 299
17.3数据检索 //299
17.3.1查询条件 // 301
17.4更新和删除 //301
17.5为缺失的数据使用NULL //302
17.6使用连接来组合表格 //303
17.6.1移除重复值 // 306
17.7键和约束 //307
17.8高级功能 //308
17.8.1聚合 // 308
17.8.2分组 // 308
17.8.3自连接 // 309
17.8.4嵌套查询 // 310
17.8.5事务 // 312
17.9本章小结 //313
17.10习题 //314
参考文献 //316
部分内容试读
《Python3.6编程实践指南——计算机入门》(原书第3版)使用Python 编程语言讲解计算机课题和一些实际应用。读者在阅读本书的过程中定能学会Python,同时也会学到每个程序员应该掌握的知识:如何理解一个问题,如何将问题分解,为何及如何构建代码,如何测试代码以确保程序确实符合需求,等等。
选择Python 有以下几方面的原因:
1)Python 是免费的,而且有翔实的资料。事实上,Python 是目前规模最大、组织最好的开源项目之一。
2)Pyhton 可以在任何设备上运行。从手机到超级计算机均可以运行用C 语言实现的Python,而且对Windows、macOS 和Linux 均有专业级安装程序支持。
3)Python 有清晰的语法。确实,每种语言都声称语法清晰,但是经过在多伦多大学多年的使用,我们发现,学生使用Python 所犯的“标点符号”错误比使用类C 语言所犯的错误少得多。
4)Python 有实际应用。每天有成千上万的公司使用Python :它是Google使用的语言之一,Industrial&LightMagic 大量使用Python,EVE 在线的大量游戏基于Python 编写。学术界也大量使用Python。
Python 有很好的工具支持。传统的编辑器如vi和Emacs都具有Python 编辑模式,另有多个专业级的集成开发环境(IDE)可供使用。(本书使用IDLE—Python 标准安装附带的免费开发环境。)
1.本书内容编排方法
《Python3.6编程实践指南——计算机入门》(原书第3版)分两部分。第一部分(第1~13章)包括编程基本概念:如何存储和处理信息(数字、文本、列表、集合、字典和文件),如何控制程序的执行(条件和循环),如何组织代码(函数和模块),如何确保程序正确运行(测试和调试),以及如何设计程序(算法)。
第二部分由第14~17章组成,涉及进一步的知识,本部分以第一部分为基础。第14章介绍如何创建和处理自己构建类型的信息,内容包括面向对象的概念,如封装、继承和多态。第15~17 章覆盖了测试、数据库和图形用户界面的构建等内容。
2.进一步的阅读资料
关于Python 编程的好书有许多。有些适合初学者, 如《Introduction to Computing and Programming in Python: A Multimedia Approach》[GE13] 和《Python Programming:An Introduction to Computer Science》[Zel03] ;有些适合于具有一定编程经验的读者,如《How to Think Like a Computer Scientist: Learning with Python》[DEM02],《Object-Oriented Programming in Python》[GL07] 和《Learning Python》[Lut13])。读者也可参考《Python Education Special Interest Group (EDU-SIG)》[Pyt11],即使用Python的教育者特别兴趣组。
Python 资源
读者掌握足够的Python 编程知识后,建议学习第二种编程语言。有很多语言可供选择,如大家熟知的C、Java、C# 和Ruby。Python 和这些语言属于同一类。但是,如果能学习一种需要不同思维方式的编程语言,如Racket、Erlang和Haskell,则可以成为一名更好的程序员。总之,强烈建议读者学习第二种编程语言。
3.读者能学到什么
《Python3.6编程实践指南——计算机入门》(原书第3版)将提供以下内容:
1)为读者展示如何开发和使用程序解决实际问题。多数例子来自和工程问题,但是其思想也适用于其他领域。
2)讲解Python 的核心特色。大多数编程语言都具有这些特色,因此,无论读者所学的下一种语言是什么,这些知识都会使读者获益。
3)讲解编程的思维方法。特别是,介绍如何将复杂问题分解为简单问题,如何将简单问题的解组合起来,从而创建完整的应用程序。
最后,介绍一些工具。有些工具可以帮助读者提高编程效率,有些工具有助于读者的应用程序解决更大规模的问题。
4.在线资源
《Python3.6编程实践指南——计算机入门》(原书第3版)的所有源代码、印刷错误、论坛、安装指引和习题解都可以在以下网站找到:http://pragprog.com/book/gwpy3/practical-programming。
序言
《Python3.6 编程实践指南—计算机入门》(原书第3版)是为初学者编写的教材。书中通过大量和工程的例子介绍了现代编程的基本思想和方法,内容涵盖常用数据类型及其基本操作,使用条件和循环控制的编程方法,函数的设计方法和函数调用过程等初学编程应该理解和掌握的基本知识。本书还介绍了一些Python 高级编程知识,包括查找和排序算法设计,面向对象的编程方法,程序的测试与调试,图形用户界面和数据库。
《Python3.6编程实践指南——计算机入门》(原书第3版)的突出特点是内容组织合理,讲解细致,对初学者理解编程中的重点和难点,掌握编程基本内容非常有帮助。比如,书中使用了一个简洁的内存模型,通过图示方式,对较难理解的变量和函数调用做了详细清晰的解释说明。又如,在第3章,作者提出一种设计函数的菜单,并通过多个例子演示,便于初学者掌握函数的设计原则和过程。对于算法的设计,作者通过由自然语言描述到Python 代码的逐步细化过程便于读者理解和掌握算法设计方法和编程方法。
《Python3.6编程实践指南——计算机入门》(原书第3版)的三位作者在编程教学领域积累了丰富的经验。作者Paul Gries 和Jennifer Campbell 在多伦多大学常年致力于编程的教学和研究,并多次获得教学奖。作者Jason Montojo是经验丰富的软件开发者,在指导学生编程方面也颇具经验。本书是三位作者多年教学、研究和实践的成果,全书对内容的组织、重点和难点的讲解都是经验的结晶,因此,本书特别适合作为初学者的教材,也可作为Python 语言使用者的参考书。
《Python3.6编程实践指南——计算机入门》(原书第3版)是由4位译者合作完成的。乔海燕翻译了第1~5 章,王烁程翻译了第6~9 章,李悫炜翻译了第10~13 章,曾烈康翻译了第14 ~17 章。限于译者水平,译文中难免出现疏漏和错误,欢迎大家批评指正!
译者
于广州番禺大学城
关于此书评价
但愿时光倒流,能把这本书送给10岁时开始学习编程的自己。相对于我在孩提时代尝试理解的那些干巴巴的编程图书,本书是如此吸引人、如此实用和容易理解。我喜欢作者的讲解方式:学生自己在Python解释器下键入代码的同时,能够阅读和理解代码的解释。
——Philip Guo 在线Python家教(www.pythontutor.com)创建者,加州大学圣地亚哥分校认知系助理教授
书如其名,本书是一本集清晰性、可读性和实用性为一体的编程入门图书。它不仅是学习编程技术的指南,而且是终身学习编程技术的基础:一个新颖、简单、易懂的可视化内存和程序运行模型,一个帮助读者编写高质量软件的设计菜单。
——Steven Wolfman 不列颠哥伦比亚大学计算机系教授
这本优秀的教材是作者多年教授大学生初学Python编程的经验结晶。书中内容组织自然,初学者常见错误和误解都得到明确的指导。每章的习题让感兴趣的学生能够进一步探索计算机和编程语言。
——Kathleen Freeman 俄勒冈大学计算机和信息系本科生教学主管
书摘内容
暂无.
Python3.6编程实践指南 计算机入门(原书第3版) [Practical Programming: An Introduction to Computer]最新最全的试读、书评、目录、简介信息由Python中文网整理提供。
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试