Python 3程序开发指南
在本书中,一流的Python程序员Mark Summerfield展示了如何充分利用Python 3的功能与特性来编写代码。与以前的版本相比。Python 3功能更强大,使用更方便,语法更一致,表达能力更丰富。本书将编写程序、使用标准或第三方Python 3库、创建新的专用库模块所必需的所有相关知识整合到了一起。作为一名具有多年Python使用经验的程序员,Summerfield在本书中为读者深度分析与讲解了从其他途径无法获取的Python3使用与开发技术。Summerfield从Python的“优美核心(beautiful heart)”(即编写高健壮性、高性能程序的8个关键要素)开始进行内容提要Python是一种脚本语言,在各个领域得到了日益广泛的应用。本书全面深入地对thon语言进行了讲解。本书首先讲述了构成 Python语言的8个关键要素,之后分章节对其进行了详尽的阐述,包括数据类型、控制结构与函数、模块、文件处理、调试、进程与线程、网络数据库、正则表达式、GUI程序设计等各个方面,并介绍了其他一些相关主题。全书内容以实例讲解为主线,每章后面附有练习题,便于读者更好地理解和掌握所讲述的内容。本书适合于作为 Python语言教科书使用,对 Python程序设计人员也有一定的参考价值。www.topsage.com在应用广泛的各种语言中, Python或许是最容易学习和最好使用的。 Python代码很容易阅读和编写,并且非常清晰,而没有什么隐秘的。 Python是一种表达能力非常强的语言,这意味着,在设计同样的应用程序时,使用 Python进行编码所需要的代码量要远少于使用其他语言(比如C+或Java)的代码量Python是一种跨平台的语言:一般来说,同样的 Python程序可以同时在 Windows平台与UNX类平台(比如 Linux、BSD与 Mac os x)上运行—只需要将构成 Python程序的单个或多个文件复制到目标机器上,而不需要“构建”或编译( Python是解释型语言)。当然, Python程序使用特定平台功能也是可能的,但通常很少需要这样做,因为几乎所有 Python标准库与大多数第三方库都是完全跨平台的,或至少对用户是透明的。Python的强大功能之一是带有一个非常完全的标准库,通过该标准库,我们可以方便地实现大量功能,比如,从 Internet下载一个文件、对压缩的存档文件进行解压,或创建一个Web服务器,而这些貌似复杂的功能,只需要少数几行 Python代码就可以实现。除标准库外,还有数以千计的第三方库,其中一些提供了比标准库更强大更复杂的功能,比如, Twisted网络库与 NumPy数值型库。其他一些库提供了极专业化的功能,因而没有包含在标准库中,比如, SimPy模拟包。大多数第三方库都可以通过 Python Package Index,网址为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语句)以及函数。此外,有些实例与练习需要读者具备 HTML markup的相关知识,后面某些更专业化的章节需要读者具备一定领域的知识,比如,数据库那一章需要读者具备基本的SQL知识。在结构上,本书尽可能让读者阅读时最富有效率。在第1章结束时,读者应该就可以编写短小但有用的 Python程序。后续的每一章都分别讲述一个新主题,在内容上通常都会比前一章更广、更深。这意味着,如果顺序阅读本书各章,在每一章结束后,都可以停止阅读,并利用该章讲解的知识编写完整的 Python程序,当然,你也可以继续阅读以便学习更高级、更复杂的技术。出于这一考虑,有些主题在某一章中介绍,在后续的一章或几章中又进行了深入讲解。讲解一门新的程序设计语言时,有两个关键的问题。第一个问题是:有时候,需要讲解某个特定概念时,会发现该概念依赖于另外一个概念,而这个概念反过来又直接或间接地依赖于这个“特定概念”第二个问题是:在最开始的时候,由于读者对该语言毫无所知,或者只具备极为有限的知识,因此要给出有趣的、有用的实例或练习非常困难。在本书中,我们力图解决这两个问题。对第一个问题,首先要求读者具备一定的程序设计经验,了解基本的概念;对第二个问题,我们在第1章中就讲解了 Python的“ beautiful heart”Python的8个关键要素,足以用于编写良好的程序。这种做法也有一个不足的地方:在前几章中,有些实例在风格上会有一点刻意为之的痕迹,这是因为这些实例中只是使用了到该章为止所讲解的知识,不过这种副作用越到后面的章节越弱,到第7章结束时,所有实例都使用完全自然的 Python3惯用风格编写。本书所讲述的方法是完全实践型的,我们建议读者尝试书中讲述的每个实例,做好每一个练习,以便获取实际的动手经验。在可能的地方,本书都提供了虽然短小但是完整的程序,这些程序实例展现了真实的应用场景。本书所带实例、练习及其解决方案都可以在www.trac.eu/py3bookhtm处获取,并且都已经在Windows、Linux、Mac osⅹ等操作平台上的 Python3环境下进行了测试。本书的组织结构第1章,提出了 Python的8个关键要素,这些要素足以用于编写完整的 Pythonwww.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章讲解使用正则表达式,以及使用两种第三方模块( Py Parsing和PLY)的解析技术;第15章介绍了GUI(图形用户界面)程序设计。本书的大部分章都较长,这样是为了将所有相关资料放在一起,以便于查询引用,不过,各章都进一步划分为节、小节,因此,本书仍然是可以按照适合自己的节奏阅读的,比如,每次阅读一节或一个小节获取并安装 Python3如果使用的是较新版本的Mac或UNX类系统并及时更新,就应该已经安装了Python3。要检查是否已经安装,可以在控制台(在 Mac OSX上是 Terminal. app)中输入命令 python V(注意是大写的V),如果版本为3X,就说明系统中已经安装了Python3,而不需要自己再安装,如果不是,请继续阅读。www.iopsage.com前言I对 Windows与 Mac osⅹ系统,存在易于使用的图形界面安装包,只需要按照提示就可以一步一步地完成安装过程。安装工具包可以从www.python.org/download处获取,该网站为 Windows系统提供了3个独立的安装程序,一般需要下载的是普通的“ Windows×86 MSI Installer”,除非确认自己的机器使用的是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。你可以下载 source tarballs中的任意一个,并根据其文件格式选择不同的工具进行解压:如果下载的是 gzipped tarball,则需要使用 tar xvfzPython-3.0gz;如果下载的是bzip2 tarball,则需要使用 tar xvf] Python-30ta:bz2。配置与构建过程是标准的,首先切换到新创建的 Python-3.0目录,运行 onfigure(如果需要本地安装,可以使用- prefix选项),之后运行make安装 Python3时,可能出现的一种情况是,在安装结束时弹出提示消息,声称不是所有的模块都已经安装,这通常意味着机器上缺少某些必要的库或头文件。这种情况可以通过单独安装相应程序包处理,比如,如果 readline模块无法构建,可以使用包管理系统安装相应的开发库,如在基于 Fedora的系统上安装 readline- devel,在基于Debian的系统上安装 readline-dev(遗憾的是,相关包的名字并不总是那么显而易见的)。安装了缺少的包之后,再次运行/ configure与make成功构建之后,可以运行 make test,以便确认是否一切正常——尽管这并非必需,并且可能需要花费一些时间。如果使用了- prefix进行本地安装,那么只需要运行 make install你可能需要为python可执行程序添加软链接(如果使用的是-pref=$ HOME/local/python3,并且PATH中包含 SHOME/bin目录,则需要lns~ local/python3/ Din/python.3.0~/bin/python3),为DDE添加软链接也会带来不少方便(假定前提与上面的一样,则需要ln-slocal/python 3/bin/idle -/bin/idle3)如果不使用- prefix并具备root权限,应该以root用户登录,并执行 make install在基于sudo的系统(比如 ubuntu)上,则执行 sudo make install如果系统上已经存在 Python2, usr/bin/python并不会改变,同时 Python3将以 python3的形式存在,同样地, Python3的DLE以jl3的形式存在www.topsage.com前言致谢首先感谢读者对本书第一版的反馈,他们在反馈中给出了修改意见和建议其次要感谢的是本书的技术评审 Jasmin blanchette,他是一位计算机科学家、程序员,我们曾共同编写过两本C艹+Qt书籍。 Jasmin对章节布局的规划、对所有实例的建议与批评以及对本书的详细审阅,这一切都极大地提高了本书的质量Georg brandi是一位一流的 Python开发人员,也是一位负责创建 Python的新文档工具链的文档编辑。 Georg挑出了很多微妙的错误,并非常耐心、非常坚持地对其进行解释,直至可以被准确理解和纠正。他还对很多实例进行了改进。Phil Thompson是一位 Python专家,也是PyQt(可能是可用的 Python GU库中最好的)的创建者。Phil的敏锐洞察力,有时候甚至是带有挑战性的反馈,都促使我对本书的很多内容进行了澄清和纠正。Trenton schulz是 Nokia的 Qt Software(以前的 Trolltech)部门的一位高级软件工程师,也是我以前撰写的所有书籍的有见地的评审,在本书的评审编辑中又一次给予了我宝贵的帮助。 Trenton对本书的细致阅读与提出的大量宝贵建议,帮助我澄清了很多问题,在很大程度上提高了本书质量除上面提及的各位评审人员之外(他们都读完了整本书), David boddie, nokia的 Qt Software的一位高级技术作者,也是一位经验丰富的 Python老手和开源软件开发者,阅读了本书的部分章节并给出了有价值的回馈。同时也要感谢 Guido van rossum, Python的创建者,感谢大量的 Python社区,是他们的努力,使得 Python(尤其是库文件)变得如此有用而好用。还要感谢 Jeff Kingston, Lout typesetting语言(我使用这种语言的时间超过10年)的创建者。特别感谢本书的编辑 Debra Williams Cauley,感谢她给予的支持,并再一次使得本书的整个编辑、出版过程尽可能顺畅;感谢 Anna Popick,他将本书的生产过程管理得非常好;感谢校对人员 Audrey Doyle再一次做了良好的工作最后也是最重要的是,感谢我的妻子 Andrea,感谢她对我在凌晨4点起床,记录下编写本书的灵感,以及对代码进行纠正和测试时,所表现出来的忍耐,以及她的爱、忠诚和一如既往的支持。www.topsage.com计算机精品学习资料大放送软考官方指定教材及同步辅导书下载|软考历年真是解析与答案软考视频|考试机构|考试时间安排Java一览无余:Java视频教程| Java se| Java eeNet技术精品资料下载汇总: ASP NET篇Net技术精品资料下载汇总:C#语言篇Ne技术精品资料下载汇总: VB NET篇撼世出击:C/C++编程语言学习资料尽收眼底电子书+视频教程Visua|C++(Vc/MFC)学习电子书及开发工具下载Perl/cGI脚本语言编程学习资源下载地址大全Python语言编程学习资料(电子书+视频教程)下载汇总最新最全Ruby、 Ruby on rails精品电子书等学习资料下载数据库精品学习资源汇总:MysL篇丨 SQL Server篇丨 Oracle篇最强HTML/ XHTML、CSS精品学习资料下载汇总最新 JavaScript、Ajax典藏级学习资料下载分类汇总网络最强PHP开发工具+电子书+视频教程等资料下载汇总UML学习电子资下载汇总软件设计与开发人员必备经典 LinuxcBT视频教程系列 Linux快速学习视频教程一帖通天罗地网:精品 Linux学习资料大收集(电子书+视频教程) Linux参考资源大系Linux系统管理员必备参考资料下载汇总Linux shel、内核及系统编程精品资料下载汇总UNIX操作系统精品学习资料<电子书+视频>分类总汇FreeBsD/ OpenBSD/ NetBsD精品学习资源索引含书籍+视频Solaris/ Open Solaris电子书、视频等精华资料下载索引目录第1章过程型程序设计快速入门。由自*自●4自普春◆命自自曲备曲音身专专中平等号平自号期寺1创建并运行 Python程序…,2 Python的关键要索…5121要素#1:数据类型……122要素#:对象引用……123要素#3:组合数据类型……91.2.4元素#4:逻辑操作符1212.5要素#5:控制流语句。●奇.。力非由·鲁是……………………16126要素#6:算术操作符………………………………201.2.7要素#7:输入输出23128要素#8:函数的创建与调用1.3实例…………271.31 bigdigits.py…1.3.2 generate_grid. py鲁省省最鲁非3014总结……∷………………………………………331.5练习●●●垂看●是自身非音非谁5第2章数据类型21标识符与关键字…3822 Integral类型··命·命···命看是有··非·非·早221整数…41222布尔型…23浮点类型…4423.1浮点数…………………45232复数23.3十进制数字…………a普音非鲁音备备是日号。·……………4924字符串d香如最dl‘lba日申自台申申申命申昏命曲5024.1比较字符串53242字符串分片与步距54243字符串操作符与方法56244使用 str formatO方法进行字符串格式化…●。垂非命自自非··。昨音24.5字符编码中···春·鲁曲。。。e。·。●中中看甲甲寻身5实例…75www.topsage.com
用户评论