Python中文网

Python程序设计开发宝典

cnpython395

这本Python程序设计开发宝典图书,是2017-08-01月由清华大学出版社所出版的,著作者信息: 董付国 著,本版是第1次印刷, ISBN:9787302472100,品牌:清华大学, 这本书的包装是16开精装,所用纸张为胶版纸,全书页数387,字数有58万4000字, 是本值得推荐的Python软件开发图书。

此书内容摘要

《Python程序设计开发宝典》共13章,面向Python3.5.x、Python3.6.x和Python3.7.x,重点关注Python内置对象和标准库对象的高级应用以及比较前沿的一些新技术,偶尔涉及一点扩展库用法。第1章介绍Python语言编程规范与代码优化建议、开发环境配置、程序伪编译与打包。第2章详解运算符与内置函数的用法。第3章详解各种序列对象、推导式、切片和序列解包。第4章详解选择结构和循环结构,关键字else、break与continue。第5章详解函数的基本用法,可调用对象与修饰器、函数参数、变量的作用域、生成器函数、lambda表达式、函数柯里化、泛型函数、协程函数和回调函数。第6章详解类的定义、不同类型的成员、依赖注入技术和运算符重载。第7章详解字符串编码与格式化方法、字符串对象方法、文本排版与压缩、汉字拼音有关的技术。第8章详解正则表达式语法、re模块、正则表达式对象与match对象。第9章详解文件对象用法、文件内容操作。第10章详解文件与文件夹操作。第11章详解异常处理结构、文档测试与单元测试、覆盖测试与软件性能测试、代码调试技术。第12章详解不同类型的并行处理技术。第13章详解asyncio提供的网络通信功能。
《Python程序设计开发宝典》不但可以作为Python程序设计教材,还可作为Python开发工程师的指导用书。

关于此书作者

董付国 副教授。自2000年参加工作以来,先后讲授过汇编语言、C/C++/C#、Java和Python等多门编程语言,以及计算机组成原理、计算机网络、数据库原理、数据结构、操作系统、计算机安全、网络安全、计算机图形学、数字图像处理、游戏策划等多门课程,多次获得校级优秀教学成果奖一等奖,出版《Python程序设计》、《Python程序设计基础》、《Python程序设计(第2版)》系列教材,开发过多套涉及不同领域的管理系统,在国内外高水平学术期刊与会议上发表论文40余篇,其中近30篇被EI检索。学习工作之余*大的爱好是打太极拳。

编辑们的推荐

适读人群 :python程序开发者

 

内容与Python新版本同步。面向Python 3.5.x、Python 3.6.x及更新版本,重点关注内置对象和标准库对象的高级用法以及比较前沿的一些新技术。

 

语言精练、代码优雅。深入剖析Python编程模式,使用*简练的语言和代码介绍Python高级用法,完美诠释Pythonic的真正含义。

案例丰富、注释量大、实用性强。精选多个领域中的经典案例,几乎每段重要代码都配有大量注释,让读者能够在短时间内理解代码思路和要点,大幅度缩短阅读和学习时间,由浅入深,层层递进,平滑学习曲线。

 

Python程序设计开发宝典图书的目录

目录
第1章管中窥豹: Python概述1
1.1Python是这样一种语言1
1.2Python版本之争1
1.3Python编程规范与代码优化建议2
1.4Python虚拟开发环境的搭建4
1.5Eclipse+PyDev环境搭建和使用4
1.6安装扩展库的几种方法6
1.7标准库与扩展库中对象的导入与使用7
1.7.1import 模块名 [as 别名]8
1.7.2from模块名import对象名[as别名]8
1.7.3from 模块名 import��9
1.7.4模块导入时的搜索路径10
1.8编写与发布自己的包10
1.9Python程序伪编译与打包12
1.10从命令行参数和配置文件获取信息14
第2章万丈高楼平地起: 运算符、表达式与内置对象16
2.1Python常用内置对象16
2.1.1常量与变量17
2.1.2数字18
2.1.3字符串21
2.1.4列表、元组、字典、集合22
2.2Python运算符与表达式23
2.2.1算术运算符24
2.2.2关系运算符25
2.2.3成员测试运算符in与同一性测试运算符is26
2.2.4位运算符与集合运算符27
2.2.5逻辑运算符28
2.2.6矩阵乘法运算符@29〖1〗〖2〗Python程序设计开发宝典〖1〗目录〖2〗2.2.7补充说明29
2.3Python关键字简要说明30
2.4Python常用内置函数用法精要31
2.4.1类型转换与类型判断34
2.4.2最值与求和38
2.4.3基本输入输出40
2.4.4排序与逆序42
2.4.5枚举与迭代43
2.4.6map()、reduce()、filter()45
2.4.7range()48
2.4.8zip()48
2.4.9eval()、exec()49
第3章玄之又玄,众妙之门: 详解Python序列结构51
3.1列表: 打了激素的数组51
3.1.1列表创建与删除52
3.1.2列表元素访问53
3.1.3列表常用方法54
3.1.4列表对象支持的运算符59
3.1.5内置函数对列表的操作61
3.1.6使用列表模拟向量运算62
3.1.7列表推导式语法与应用案例63
3.1.8切片操作的强大功能70
3.2元组: 轻量级列表73
3.2.1元组创建与元素访问73
3.2.2元组与列表的异同点74
3.2.3生成器推导式75
3.3字典: 反映对应关系的映射类型76
3.3.1字典创建与删除77
3.3.2字典元素的访问77
3.3.3元素的添加、修改与删除79
3.3.4标准库collections中与字典有关的类80
3.4集合: 元素之间不允许重复81
3.4.1集合对象的创建与删除81
3.4.2集合操作与运算82
3.4.3不可变集合frozenset84
3.4.4集合应用案例84
3.5序列解包的多种形式和用法86
3.6标准库中的其他常用数据类型88
3.6.1枚举类型88
3.6.2数组类型89
3.6.3队列90
3.6.4具名元组92
3.6.5堆92
第4章反者,道之动: 程序控制结构94
4.1条件表达式94
4.2选择结构96
4.2.1单分支选择结构96
4.2.2双分支选择结构97
4.2.3多分支选择结构98
4.2.4选择结构的嵌套99
4.2.5构建跳转表实现多分支选择结构100
4.3循环结构100
4.3.1for循环与while循环100
4.3.2break与continue语句101
4.3.3循环代码优化技巧102
4.4精彩案例赏析103
第5章代码复用技术(一): 函数111
5.1函数定义与使用111
5.1.1基本语法111
5.1.2函数嵌套定义、可调用对象与修饰器113
5.1.3函数对象成员的动态性117
5.1.4函数递归调用117
5.2函数参数118
5.2.1位置参数120
5.2.2默认值参数120
5.2.3关键参数122
5.2.4可变长度参数122
5.2.5强制函数的某些参数必须以关键参数形式进行传值123
5.2.6强制函数的所有参数必须以位置参数形式进行传值124
5.2.7传递参数时的序列解包125
5.2.8标注函数参数与返回值类型126
5.3变量作用域127
5.3.1全局变量与局部变量127
5.3.2nonlocal变量130
5.4lambda表达式130
5.5生成器函数设计要点133
5.6偏函数与函数柯里化135
5.7单分发器与泛型函数136
5.8协程函数138
5.9注册程序退出时必须执行的函数140
5.10回调函数原理与实现140
5.11精彩案例赏析141
第6章代码复用技术(二): 面向对象程序设计167
6.1类的定义与使用167
6.1.1基本语法167
6.1.2type类168
6.1.3定义带修饰器的类169
6.2数据成员与成员方法171
6.2.1私有成员与公有成员171
6.2.2数据成员172
6.2.3成员方法、类方法、静态方法、抽象方法173
6.2.4属性175
6.2.5类与对象的动态性、混入机制177
6.3继承、多态、依赖注入179
6.3.1继承179
6.3.2多态181
6.3.3依赖注入技术的不同实现方法182
6.4特殊方法与运算符重载185
6.5精彩案例赏析187
6.5.1自定义队列187
6.5.2自定义栈191
6.5.3自定义集合193
6.5.4自定义数组199
6.5.5自定义双链表204
6.5.6自定义常量类206
6.5.7自定义不允许修改值的字典207
6.5.8自定义支持with关键字的类208
第7章文本处理(一): 字符串209
7.1字符串编码格式简介210
7.2转义字符与原始字符串211
7.3字符串格式化212
7.3.1使用%符号进行格式化212
7.3.2使用format()方法进行字符串格式化213
7.3.3格式化的字符串常量215
7.3.4使用Template模板进行格式化215
7.4字符串常用操作216
7.4.1find()、rfind()、index()、rindex()、count()216
7.4.2split()、rsplit()、partition()、rpartition()217
7.4.3join()219
7.4.4lower()、upper()、capitalize()、title()、swapcase()220
7.4.5replace()、maketrans()、translate()220
7.4.6strip()、rstrip()、lstrip()221
7.4.7startswith()、endswith()222
7.4.8isalnum()、isalpha()、isdigit()、isdecimal()、isnumeric()、
isspace()、isupper()、islower()222
7.4.9center()、ljust()、rjust()、zfill()223
7.4.10字符串对象支持的运算符224
7.4.11适用于字符串对象的内置函数226
7.4.12字符串对象的切片操作228
7.5其他有关模块228
7.5.1textwrap模块228
7.5.2zlib模块提供的压缩功能231
7.6字符串常量232
7.7可变字符串232
7.8中英文分词234
7.9汉字到拼音的转换235
7.10精彩案例赏析236
第8章文本处理(二): 正则表达式239
8.1正则表达式语法239
8.1.1正则表达式基本语法239
8.1.2正则表达式扩展语法240
8.1.3正则表达式锦集241
8.2直接使用正则表达式模块re处理字符串242
8.3使用正则表达式对象处理字符串246
8.4match对象248
8.5精彩案例赏析250
第9章数据永久化: 文件内容操作257
9.1文件操作基本知识258
9.1.1内置函数open()258
9.1.2文件对象属性与常用方法260
9.1.3上下文管理语句with261
9.2文本文件内容操作案例精选261
9.3二进制文件操作案例精选266
9.3.1使用pickle模块读写二进制文件267
9.3.2使用struct模块读写二进制文件268
9.3.3使用shelve模块操作二进制文件269
9.3.4使用marshal模块操作二进制文件270
9.3.5其他常见类型二进制文件操作案例271
第10章文件与文件夹操作281
10.1os模块281
10.2os.path模块284
10.3shutil模块286
10.4其他常用模块287
10.4.1glob模块287
10.4.2fnmatch模块288
10.5精彩案例赏析289
第11章代码质量保障: 异常处理结构、程序调试与测试293
11.1异常处理结构293
11.1.1异常的概念与表现形式293
11.1.2Python内置异常类层次结构294
11.1.3异常处理结构296
11.1.4断言与上下文管理语句301
11.2文档测试doctest301
11.3单元测试unittest304
11.4覆盖测试307
11.5软件性能测试308
11.6代码调试310
11.6.1使用IDLE调试310
11.6.2使用Eclipse+PyDev进行代码调试311
11.6.3使用pdb调试313
第12章多任务与并行处理: 线程、进程、协程、分布式、GPU加速318
12.1多线程编程318
12.1.1线程概念与标准库threading318
12.1.2线程对象320
12.1.3线程调度323
12.1.4Lock/RLock对象324
12.1.5Condition对象326
12.1.6Queue对象328
12.1.7Event对象332
12.1.8Semaphore与BoundedSemaphore333
12.1.9Barrier对象334
12.2多进程编程335
12.2.1进程创建与管理335
12.2.2进程同步技术336
12.2.3Pool对象337
12.2.4Manager对象341
12.2.5Listener与Client对象345
12.2.6进程间数据交换与共享345
12.2.7标准库subprocess348
12.3协程349
12.4concurrent.futures模块提供的并发执行功能351
12.5pySpark并行计算与分布式计算框架353
12.6GPU编程359
12.6.1使用pycuda实现GPU加速359
12.6.2使用pyopencl实现GPU加速360
12.6.3使用tensorflow实现GPU加速362
第13章互通互联: asyncio提供的网络通信功能364
13.1Transport类与Protocol类364
13.2StreamReader与StreamWriter369
附录精彩在继续373
附录AGUI开发373
附录BSQLite数据库操作376
附录C计算机图形学编程377
附录D图像编程380
附录E数据分析、机器学习、科学计算可视化383
附录F密码学编程383
附录G系统运维384
附录HWindows系统编程384
附录I软件分析与逆向工程386
参考文献388
 

部分内容试读

前言

作者第一次接触Python大概是在2002年,在几个著名的安全网站上看到有人用这个语言,当时的作者正痴迷于C语言和汇编语言,内心不屑于学习这种脚本语言。2010年的时候因为要用IDAPro分析一个PE文件而不得不借助于IDAPython插件,才真正感觉到了Python的方便与强大,于是购买了很多书籍并且阅读了大量在线文档开始系统地学习Python。2013年学校组织各专业教研室修订新版人才培养方案时,经过慎重考虑并且与其他几位老师进行了多次沟通,最终确定为数字媒体技术专业和服务外包专业增加了“Python程序设计”这门课程。然而,虽然当时市面上已经有了一些Python书籍,但是适合作为教材的却寥寥无几,有的过于专注某个专业领域,有的则是泛泛地介绍一点皮毛,并且很多书里放置的插图占用了大量篇幅,知识密度很小,不是作者喜欢的风格。在翻看了超过20本Python图书以后,作者决定动手写一本适合作教材的书,于是就有了面向计算机及相关专业的《Python程序设计》(书号为9787302407232,2015年8月出版)和面向非计算机专业的《Python程序设计基础》(书号为9787302410584,2015年8月出版,2016年3月第2次印刷,2017年1月第3次印刷),前者主要介绍Python2.7.x的基本语法以及在各领域的应用,后者主要介绍Python3.4.x的基本语法而没有涉及太多的应用。本来当时写这两本书的目的仅仅是为了自己上课用起来方便,然而出版不到一年就被近30所院校选作教材,还有几十所院校的图书馆也采购了这两本书供学生借阅,反响非常好。应广大读者和用书老师的要求,也为了紧跟Python飞速发展的步伐,作者于2016年6月又出版了《Python程序设计(第2版)》(书号为9787302436515),这本书使用Python3.5.x重写了第1版中的所有案例,并且新增案例近百个,出版后迅速被多所院校选作教材,各大网上书店也频频缺货,2016年11月初进行了第2次印刷,2017年3月进行了第3次印刷。考虑到更多的Python爱好者并没有听老师讲课的机会,看教材自学可能比较吃力,作者于2017年1月份出版了《Python可以这样学》(书号为9787302456469),全书500多页,使用生动活泼的语言讲解Python3.5.x的知识和应用(绝大部分内容也适用于Python3.6.x和Python3.7.x),在《Python程序设计(第2版)》的基础上删掉了“软件分析与逆向工程”和“安卓平台的Python编程”内容,新增了大量案例,并且融入了道德经、周易、太极拳理论中的核心思想以及大量中外名人名言,通过小提示、小技巧、注意、拓展知识等多种形式扩充了大量知识,尤其适合Python爱好者自学,也可作为进阶工具书进行查阅。该书出版之后迅速得到社会各界人士的一致认可,第一批印刷的书很快被抢购一空,不到两个月就进行了第二次印刷。回头想想,自己二十年如一日地每天熬夜看书学习写代码还是值得的。〖1〗〖2〗Python程序设计开发宝典〖1〗前言〖2〗当2016年6月份作者前几本Python系列图书的责任编辑白立军老师约作者再编写一本面向高级程序员的Python图书时,说实话,内心是喜悦的,很高兴自己的努力得到广大Python爱好者的认可。但同时作者内心也有些担心,感觉在写前4本书时已经用完了自己的洪荒之力。在这本新书里再写点什么好呢?内容该如何组织呢?如何避免过多地重复利用前几本书里的案例呢?反复思考了近2个月,考虑目前很多Python程序员的现状:喜欢直接使用各种扩展库来解决问题,不重视对Python语言本身的理解,内功不够深厚,导致很多代码粗制滥造。最终作者做出决定,在这本新书里,不再介绍太多扩展库的应用,而是把重点放在Python语法和内置对象、标准库对象的高级应用上,注重Python的内涵,注重内功的修炼,尽量往纵深发展,争取用最简练的语言介绍那些作者认为比较高级的用法。在编写过程中,尽量减少与前几本书中内容的重复,补充大量新案例和高级用法。当然,前面几本书里的有些案例在这本书里又出现了,但是仔细的读者应该能发现,很多案例代码都进行了必要的改写和优化,更加Pythonnic,更加优雅和高效。自从答应了写这本书之后,作者在不影响正常教学和科研工作的情况下每天拿出至少10个小时查阅资料、编写代码或者整理书稿,前后用了一年左右的时间,现在回头想想也挺值得,在整理资料和编写案例代码的同时作者自己也进步了很多,对Python有了更加深入的认识和理解。

内容组织与阅读建议

全书共13章,面向Python3.5.x、Python3.6.x和Python3.7.x,重点关注Python内置对象和标准库对象的高级应用,以及比较前沿的、刚刚引入的一些新技术和新特性的用法,偶尔涉及一些扩展库用法。几乎每个知识点都配有大量的案例,把这些案例简单拼凑和集成就可以实现很多功能,实用性非常强。建议读者按章节顺序阅读,并且前后结合地反复阅读,不要随意跳过任何内容,或许不经意间会发现自己正需要的知识或者得到某种灵感。另外,虽然本书的定位是Python高级编程,但也同样适用于初学者,请初学者不要觉得有压力,如果有些地方暂时看不懂,可以先跳过去,或许过几天再看就明白了。当然,如果实在看不懂的话,及时和作者沟通应该会得到帮助。

第1章管中窥豹:Python概述。介绍Python语言的特点与主流版本,编程规范与代码优化建议,虚拟开发环境的创建与配置,扩展库的安装方法,开发与发布自己的包,Python程序伪编译与打包,从命令行和外部文件获取配置信息。

第2章万丈高楼平地起:运算符、表达式与内置对象。详细介绍Python的运算符与内置函数的用法,以及变量与常量的概念。

第3章玄之又玄,众妙之门:详解Python序列结构。详解列表、元组、字典、集合等对象的特点与用法,列表推导式、生成器推导式、字典推导式与集合推导式,切片操作,序列解包,枚举、数组、队列、堆等常用结构用法。

第4章反者,道之动:程序控制结构。详解Python中的选择结构和循环结构,else的几种用法,选择结构的多种实现方式,break与continue语句,循环结构的代码优化技巧。

第5章代码复用技术(一):函数。详解函数的定义与嵌套定义语法,可调用对象与修饰器原理,位置参数、默认值参数、关键参数以及参数的序列解包,局部变量、全局变量与nonlocal变量,生成器函数,lambda表达式,函数柯里化,泛型函数,协程函数,回调函数。

第6章代码复用技术(二):面向对象程序设计。详解类的定义语法与实例化方法,数据成员、成员方法、属性以及静态方法与类方法,继承与多态,依赖注入技术的Python实现,特殊成员重写与运算符重载。

第7章文本处理(一):字符串。详解字符串编码与字符串格式化方法、字符串对象方法、文本排版与压缩、分词、汉字拼音有关的技术。

第8章文本处理(二):正则表达式。详解正则表达式基本语法与扩展语法,正则表达式模块re的用法,正则表达式对象与match对象的用法。

第9章数据永久化:文件内容操作。详解内置函数open()与上下文管理语句with的用法,文本文件与二进制文件的操作,Excel、Word、zip、rar等常见二进制文件操作技术。

第10章文件与文件夹操作。详解os、os.path、shutil、glob、fnmatch等模块在文件与文件夹操作方面的用法。

第11章代码质量保障:异常处理结构、程序调试与测试。详解异常处理结构,文档测试与单元测试技术,覆盖测试与软件性能测试技术,IDLE、pdb、Eclipse+Pydev等不同的代码调试技术。

第12章多任务与并行处理:线程、进程、协程、分布式、GPU加速。详解多线程与多进程编程技术,线程与进程的同步技术,不同进程间数据交换与共享技术,协程,spark并行计算与GPU编程。

第13章互通互联:asyncio提供的网络通信功能。详解asyncio提供的网络通信功能,重点介绍Transport、Protocol、StreamReader以及StreamWriter等类的用法。

配套资源

本书提供所有案例源代码,可以登录清华大学出版社网站(www.tup.com.cn)下载,或加入本书读者群(QQ群号456324891,加入时请注明是读者,如果这个群满了的话会在群简介中给出下一个群号)下载最新配套资源并与作者交流,当然也欢迎关注微信公众号“Python小屋”及时阅读作者写的最新案例代码,有些代码是在本书完稿之后新写的,是书上没有的,算作是一个很好的补充。

适用读者

�r已经具有一定Python水平的软件开发工程师。

�r打算深入探究Python高级编程的狂热爱好者。

�r各专业研究生、本科生、专科生的程序设计教材。

�r可能有些内容看起来会稍微有些吃力的其他Python初学者。

致谢

首先感谢父母的养育之恩,在当年那么艰苦的条件下还坚决支持我读书,没有让我像其他有的同龄的孩子一样辍学。感谢姐姐、姐夫多年来对我的爱护以及在老家对父母的照顾,感谢善良的弟弟、弟媳在老家对父母的照顾,正是有了你们,远离家乡的我才能安心工作。当然,最应该感谢的是妻子和孩子对我这个技术狂人的理解和宽容,这些年来她们已经习惯了正在吃饭的我突然萌发一个思路就放下饭碗去计算机前写代码的情景,习惯了我每个周末和假期都在教研室看书或写代码而不能陪她们玩,也习惯了周末的中午和晚上她们做好饭后再打电话催我回家。为了支持我的工作,她们还在我的几本书正式出版之前阅读了我的书稿。

感谢我的领导冯烟利教授提供了良好的教学科研环境,这样的工作环境让人觉得非常舒适,每个人都可以安心做好自己的事,发挥出最大潜力。

感谢选用Python程序设计系列教材的老师和长期关注微信公众号“Python小屋”的朋友以及系列图书读者QQ群里的朋友,感谢你们指出前几本书里存在的几个小错误,和你们的交流也给了我很多启发!

感谢每一位读者,感谢您在茫茫书海中选择了本书,衷心希望您能够从本书中受益,学到真正需要的知识!同时也期待每一位读者的热心反馈,随时欢迎您指出书中的不足!

本书在编写出版过程中也得到清华大学出版社的大力支持和帮助,尤其是非常有远见的责任编辑白立军老师对这套Python系列图书的策划,一并表示衷心的感谢。

董付国于山东烟台

2017年3月

 

关于此书评价

暂无.

书摘内容

暂无.

Python程序设计开发宝典最新最全的试读、书评、目录、简介信息由Python中文网整理提供。