1. 首页
  2. 编程语言
  3. Python
  4. Python3程序开发指南(第二版)pdf

Python3程序开发指南(第二版)pdf

上传者: 2020-05-14 08:12:02上传 PDF文件 28.35MB 热度 28次
内容提要 Python是一种脚本语言,在各个领域得到了日益广泛的应用。本书全面深入地对 thon语言进行了讲解。 本书首先讲述了构成Python语言的8个关键要素,之后分章节对其进行了详尽的 阐述,包括数据类型、控制结构与函数、模块、文件处理、调试、进程与线程、网络 数据库、正则表达式、GUI程序设计等各个方面,并介绍了其他一些相关主题。全书 内容以实例讲解为主线,每章后面附有练习题,便于读者更好地理解和掌握所讲述的 内容。 本书适合于作为Python语言教科书使用,对Python程序设计人员也有一定的参 考价值。 www.topsage.com 在应用广泛的各种语言中,Python或许是最容易学习和最好使用的。Python代码 很容易阅读和编写,并且非常清晰,而没有什么隐秘的。Python是一种表达能力非常 强的语言,这意味着,在设计同样的应用程序时,使用Python进行编码所需要的代码 量要远少于使用其他语言(比如C+或Java)的代码量 Python是一种跨平台的语言:一般来说,同样的Python程序可以同时在Windows 平台与UNX类平台(比如Linux、BSD与Macosx)上运行—只需要将构成Python 程序的单个或多个文件复制到目标机器上,而不需要“构建”或编译(Python是解释 型语言)。当然,Python程序使用特定平台功能也是可能的,但通常很少需要这样做, 因为几乎所有Python标准库与大多数第三方库都是完全跨平台的,或至少对用户是透 明的。 Python的强大功能之一是带有一个非常完全的标准库,通过该标准库,我们可以 方便地实现大量功能,比如,从Internet下载一个文件、对压缩的存档文件进行解压, 或创建一个Web服务器,而这些貌似复杂的功能,只需要少数几行Python代码就可 以实现。除标准库外,还有数以千计的第三方库,其中一些提供了比标准库更强大 更复杂的功能,比如,Twisted网络库与NumPy数值型库。其他一些库提供了极专业 化的功能,因而没有包含在标准库中,比如,SimPy模拟包。大多数第三方库都可以 通过PythonPackageIndex,网址为htp:ypi.python.org/pypi进行访间 虽然本质上是一种面向对象语言,但是实际上Python可以用于进行过程型程序设 计、面向对象设计,以及某种程度上的函数型程序设计。本书主要展示如何使用Python 进行过程型程序设计与面向对象程序设计,也介绍了Python的函数型程序设计功能。 本书的目标是展示如何使用良好的Python3惯用风格编写Python程序,在阅读本 书之后,你就可以发现,本书是一本非常有用的Python3语言索引。虽然与Python2 相比,Python3所做的改进和改变是渐进的,而非革新,但是在Python3中,Python2 中的一些既有做法变得不再合适或不再必要,因此必须介绍和使用Python3中的一些 新做法,以便充分利用Python3的功能。毋庸置疑,Python3优于Python2;它构建 于Python2多年的实践基础上,并添加了大量的新功能(还摒弃了Pyhn2的一些不 良特性)。与Python2相比,使用Python3更富于乐趣,更便利、容易和具有一致性。 本书旨在讲解Python语言息电楼滥及很多标准Python),但是没有 前言 全部介绍。不过这不是问题,因为在阅读本书之后,将具备充分的Python知识,读者 可以自如地使用任意的标准库或任意第三方库,并可以创建自己的库模块。 本书适用于多种不同类型的读者,包括自学者、程序设计爱好者、学生、科学家、m 工程师,以及工作中需要进行程序设计的人,当然,也包括计算专业工作者和计算机 科学家。要面对这些不同类型的读者,既让已具备丰富知识的读者不厌烦,又让经验 不足的读者可以理解,因此,本书假定读者至少具备一定的程序设计经验(任何程序 语言)。特别是,本书需要读者了解数据类型(比如数与字符串)、集合数据类型(比 如集合与列表)、控制结构(比如与whle语句)以及函数。此外,有些实例与练习 需要读者具备HTMLmarkup的相关知识,后面某些更专业化的章节需要读者具备一 定领域的知识,比如,数据库那一章需要读者具备基本的SQL知识。 在结构上,本书尽可能让读者阅读时最富有效率。在第1章结束时,读者应该就 可以编写短小但有用的Python程序。后续的每一章都分别讲述一个新主题,在内容上 通常都会比前一章更广、更深。这意味着,如果顺序阅读本书各章,在每一章结束后, 都可以停止阅读,并利用该章讲解的知识编写完整的Python程序,当然,你也可以继 续阅读以便学习更高级、更复杂的技术。出于这一考虑,有些主题在某一章中介绍, 在后续的一章或几章中又进行了深入讲解。 讲解一门新的程序设计语言时,有两个关键的问题。第一个问题是:有时候,需要讲 解某个特定概念时,会发现该概念依赖于另外一个概念,而这个概念反过来又直接或间接 地依赖于这个“特定概念”第二个问题是:在最开始的时候,由于读者对该语言毫无所 知,或者只具备极为有限的知识,因此要给出有趣的、有用的实例或练习非常困难。在本 书中,我们力图解决这两个问题。对第一个问题,首先要求读者具备一定的程序设计经验, 了解基本的概念;对第二个问题,我们在第1章中就讲解了Python的“beautifulheart” Python的8个关键要素,足以用于编写良好的程序。这种做法也有一个不足的地方: 在前几章中,有些实例在风格上会有一点刻意为之的痕迹,这是因为这些实例中只是使用 了到该章为止所讲解的知识,不过这种副作用越到后面的章节越弱,到第7章结束时,所 有实例都使用完全自然的Python3惯用风格编写。 本书所讲述的方法是完全实践型的,我们建议读者尝试书中讲述的每个实例,做 好每一个练习,以便获取实际的动手经验。在可能的地方,本书都提供了虽然短小但 是完整的程序,这些程序实例展现了真实的应用场景。本书所带实例、练习及其解决 方案都可以在www.trac.eu/py3bookhtm处获取,并且都已经在Windows、Linux、 Macosⅹ等操作平台上的Python3环境下进行了测试。 本书的组织结构 第1章,提出了Python的8个关键要素,这些要素足以用于编写完整的Python www.topsage.com 前言 程序。本章描述了一些可用的Python程序设计环境,给出了两个小实例,这两个实例 都是使用前面讲述的8个关键要素构建的。 第2章~第5章介绍了Python的过程型程序设计功能,包括基本数据类型与集合 数据类型、很多有用的内置函数与控制结构,以及比较简单的文本文件处理功能。第 5章展示了如何创建自定义模块与包,并提供了Python标准库概览,以便读者对Python 提供的功能有充分的了解,避免重复工作 第6章对使用Python进行面向对象程序设计进行了全面深入的讲解。由于面向对 象程序设计是建立在过程型程序设计基础之上的,因此,此前几章讲述的过程型程序 设计相关的知识仍然可以用于面向对象程序设计,比如,利用同样的数据类型、集合 数据类型以及控制结构 第7章主要讲述文件的读、写。对于二进制文件,包括压缩、随机存取;对于文 本文件,包括人工分析以及正则表达式的使用。本章也包括了如何读、写XML文件, 包括使用元素树、DOM(文档对象模型)以及SAX(用于ⅩML的简单APⅠ)。 第8章回顾了前面一些章节中讲述的内容,探讨了数据类型、集合数据类型、 控制结构、函数、面向对象程序设计等领域一些更高级的内容。本章还介绍了很多 新功能、类以及高级技术,包括函数型程序设计——其中的内容有挑战性,但也很 有用 第9章与其他章节的不同之处在于,它不是介绍新的Python特性,而是讨论了用 于调试、测试和profiling程序的技术和库。 余下的几章讲述了其他一些高级主题。第10章展示了如何将程序的工作负载分布 在多个进程与线程上;第11章展示了如何使用Python的标准网络支持功能编写客户 端/服务器应用程序;第12章讲解了数据库程序设计(包括键值对DBM文件与SQL 数据库);第13章讲述了Python的正则表达式mini-language,介绍了正则表达式模块; 第14章讲解使用正则表达式,以及使用两种第三方模块(PyParsing和PLY)的解析 技术;第15章介绍了GUI(图形用户界面)程序设计。 本书的大部分章都较长,这样是为了将所有相关资料放在一起,以便于查询引用, 不过,各章都进一步划分为节、小节,因此,本书仍然是可以按照适合自己的节奏阅 读的,比如,每次阅读一节或一个小节 获取并安装Python3 如果使用的是较新版本的Mac或UNX类系统并及时更新,就应该已经安装了 Python3。要检查是否已经安装,可以在控制台(在MacOSX上是Terminal.app)中 输入命令pythonV(注意是大写的V),如果版本为3X,就说明系统中已经安装了 Python3,而不需要自己再安装,如果不是,请继续阅读。 www.iopsage.com 前言 I 对Windows与Macosⅹ系统,存在易于使用的图形界面安装包,只需要按照提 示就可以一步一步地完成安装过程。安装工具包可以从www.python.org/download处获 取,该网站为Windows系统提供了3个独立的安装程序,一般需要下载的是普通的 “Windows×86MSIInstaller”,除非确认自己的机器使用的是AMD64或Itanium处理 器,这种情况需要下载处理器特定的安装程序。下载安装程序后,只需要运行并按提 示进行操作,就可以安装好Python3。 对Linux、BSD以及其他UNⅨX类系统,安装Python的最简单方法是使用该操作 系统的软件包管理系统。大多数情况下,Python安装程序是以几个单独的软件包形式 提供的。比如,在Fedora中,用于Python的安装包为python,用于IDLE(一个简单 的开发环境)的安装包为python-tools。需要注意的是,只有在Fedora为更新的版本 时(版本10或后续版本),这些安装包才是基于Python3的。同样,对基于Debian 的系统,比如Ubun如u,对应的安装包为python3与jdle3 如果没有适合自己操作系统的安装包,就需要从www.python.org/download处下载 源程序,并从头编译Python。你可以下载sourcetarballs中的任意一个,并根据其文件 格式选择不同的工具进行解压:如果下载的是gzippedtarball,则需要使用tarxvfz Python-3.0gz;如果下载的是bzip2tarball,则需要使用tarxvf]Python-30ta:bz2。配 置与构建过程是标准的,首先切换到新创建的Python-3.0目录,运行onfigure(如果 需要本地安装,可以使用-prefix选项),之后运行make 安装Python3时,可能出现的一种情况是,在安装结束时弹出提示消息,声称不 是所有的模块都已经安装,这通常意味着机器上缺少某些必要的库或头文件。这种情 况可以通过单独安装相应程序包处理,比如,如果readline模块无法构建,可以使用 包管理系统安装相应的开发库,如在基于Fedora的系统上安装readline-devel,在基于 Debian的系统上安装readline-dev(遗憾的是,相关包的名字并不总是那么显而易见 的)。安装了缺少的包之后,再次运行/configure与make 成功构建之后,可以运行maketest,以便确认是否一切正常——尽管这并非必需, 并且可能需要花费一些时间。 如果使用了-prefix进行本地安装,那么只需要运行makeinstall你可能需要为 python可执行程序添加软链接(如果使用的是-pref=$HOME/local/python3,并且 PATH中包含SHOME/bin目录,则需要lns~local/python3/Din/python.3.0~/bin/py thon3),为DDE添加软链接也会带来不少方便(假定前提与上面的一样,则需要ln-s local/python3/bin/idle-/bin/idle3) 如果不使用-prefix并具备root权限,应该以root用户登录,并执行makeinstall 在基于sudo的系统(比如ubuntu)上,则执行sudomakeinstall如果系统上已经存 在Python2,usr/bin/python并不会改变,同时Python3将以python3的形式存在,同 样地,Python3的DLE以jl3的形式存在 www.topsage.com 前言 致谢 首先感谢读者对本书第一版的反馈,他们在反馈中给出了修改意见和建议 其次要感谢的是本书的技术评审Jasminblanchette,他是一位计算机科学家、程 序员,我们曾共同编写过两本C艹+Qt书籍。Jasmin对章节布局的规划、对所有实例 的建议与批评以及对本书的详细审阅,这一切都极大地提高了本书的质量 Georgbrandi是一位一流的Python开发人员,也是一位负责创建Python的新文档 工具链的文档编辑。Georg挑出了很多微妙的错误,并非常耐心、非常坚持地对其进 行解释,直至可以被准确理解和纠正。他还对很多实例进行了改进。 PhilThompson是一位Python专家,也是PyQt(可能是可用的PythonGU库中最 好的)的创建者。Phil的敏锐洞察力,有时候甚至是带有挑战性的反馈,都促使我对 本书的很多内容进行了澄清和纠正。 Trentonschulz是Nokia的QtSoftware(以前的Trolltech)部门的一位高级软件工 程师,也是我以前撰写的所有书籍的有见地的评审,在本书的评审编辑中又一次给予 了我宝贵的帮助。Trenton对本书的细致阅读与提出的大量宝贵建议,帮助我澄清了很 多问题,在很大程度上提高了本书质量 除上面提及的各位评审人员之外(他们都读完了整本书),Davidboddie,nokia 的QtSoftware的一位高级技术作者,也是一位经验丰富的Python老手和开源软件开 发者,阅读了本书的部分章节并给出了有价值的回馈。 同时也要感谢Guidovanrossum,Python的创建者,感谢大量的Python社区,是 他们的努力,使得Python(尤其是库文件)变得如此有用而好用。 还要感谢JeffKingston,Louttypesetting语言(我使用这种语言的时间超过10年) 的创建者。 特别感谢本书的编辑DebraWilliamsCauley,感谢她给予的支持,并再一次使得 本书的整个编辑、出版过程尽可能顺畅;感谢AnnaPopick,他将本书的生产过程管理 得非常好;感谢校对人员AudreyDoyle再一次做了良好的工作 最后也是最重要的是,感谢我的妻子Andrea,感谢她对我在凌晨4点起床,记录 下编写本书的灵感,以及对代码进行纠正和测试时,所表现出来的忍耐,以及她的爱、 忠诚和一如既往的支持。 www.topsage.com 计算机精品学习资料大放送 软考官方指定教材及同步辅导书下载|软考历年真是解析与答案 软考视频|考试机构|考试时间安排 Java一览无余:Java视频教程|Javase|Javaee Net技术精品资料下载汇总:ASPNET篇 Net技术精品资料下载汇总:C#语言篇 Ne技术精品资料下载汇总:VBNET篇 撼世出击:C/C++编程语言学习资料尽收眼底电子书+视频教程 Visua|C++(Vc/MFC)学习电子书及开发工具下载 Perl/cGI脚本语言编程学习资源下载地址大全 Python语言编程学习资料(电子书+视频教程)下载汇总 最新最全Ruby、Rubyonrails精品电子书等学习资料下载 数据库精品学习资源汇总:MysL篇丨SQLServer篇丨Oracle篇 最强HTML/XHTML、CSS精品学习资料下载汇总 最新JavaScript、Ajax典藏级学习资料下载分类汇总 网络最强PHP开发工具+电子书+视频教程等资料下载汇总 UML学习电子资下载汇总软件设计与开发人员必备 经典LinuxcBT视频教程系列Linux快速学习视频教程一帖通 天罗地网:精品Linux学习资料大收集(电子书+视频教程)Linux参考资源大系 Linux系统管理员必备参考资料下载汇总 Linuxshel、内核及系统编程精品资料下载汇总 UNIX操作系统精品学习资料分类总汇 FreeBsD/OpenBSD/NetBsD精品学习资源索引含书籍+视频 Solaris/OpenSolaris电子书、视频等精华资料下载索引 目录 第1章过程型程序设计快速入门 。由自*自●4自普春◆命自自曲备曲音身专专中平等号平自号期寺 1创建并运行Python程序… ,2Python的关键要索… 5 121要素#1:数据类型…… 122要素#:对象引用…… 123要素#3:组合数据类型 ……9 1.2.4元素#4:逻辑操作符 12 12.5要素#5:控制流语句 。●奇.。力非由·鲁是 ……………………16 126要素#6:算术操作符……………………………… 20 1.2.7要素#7:输入输出 23 128要素#8:函数的创建与调用 1.3实例 …………27 1.31bigdigits.py… 1.3.2generate_grid.py 鲁省省最鲁非 30 14总结 ……∷………………………………………33 1.5练习 ●●●垂看●是自身非音非谁 5 第2章数据类型 21标识符与关键字 …38 22Integral类型 ··命·命···命看是有··非·非·早 221整数… 41 222布尔型… 23浮点类型 …44 23.1浮点数…………………45 232复数 23.3十进制数字………… a普音非鲁音备备是日号。· ……………49 24字符串 d香如最dl‘lba日申自台申申申命申昏命曲 50 24.1比较字符串 53 242字符串分片与步距 54 243字符串操作符与方法 56 244使用strformatO方法进行字符串格式化… ●。垂非命自自非··。昨音 24.5字符编码 中···春· 鲁曲。。。e。·。●中中看甲甲寻身 5实例… 75 www.topsage.com
下载地址
用户评论