Python语言学习之Python入门到进阶

人们常说Python语言简单,编写简单程序时好像也确实如此。但实际上Python毫不简单,它也是一种很复杂的语言,其功能特征很是丰富,能支持多种编程风格,在几乎全部方面都能深度定制。要想用好Python,用它解决复杂问题,开发功能正确的、效率高的程序,须要很好地理解上面说明的许多高级概念和特征,还须要理解这门语言的内在性质。python

Python虽然说是目前很是热门的一种编程语言,但有关Python编程和应用的书籍,虽不能说是汗牛充栋、铺天盖地,也是林林总总、选择不少。《程序员学Python》与其余书籍有什么不一样呢?程序员

 

《程序员学Python》正则表达式

裘宗燕 著编程

根据对读者已有知识基础的考虑,本书对Python中与其余语言相似的基本编程机制的介绍相对精练,将更多篇幅集中于各类反映了Python特色的特征及相关编程和应用技术方面。数组

例如,书中前两章详细讨论了函数定义的嵌套结构和做用域规则,丰富的形参/实参机制和形实参匹配规则,高阶函数的概念和应用,迭代器和可迭代对象的概念和定义,lambda表达式(匿名函数)及其应用,标准组合对象的构造和使用,描述式的概念和应用等。书中还经过较大型的实例展现组合数据对象的应用和相关编程技术。网络

程序员学习Python不是为了写几个玩具程序,而是为了开发有用的系统。针对这种需求,本书深刻讨论了许多与开发复杂和大型程序有关的问题,以及相关的Python特征和应用技术。闭包

书中内容包括程序的功能分解、信息局部化、模块化;Python函数定义、类定义和模块机制的使用;Python中面向对象机制的相关概念、结构和应用技术,以及一些特殊功能类的构造;程序的模块分解和管理,复杂模块结构的物理组织和导入技术等。并发

本书是针对程序员或其余学过用过至少一种编程语言、有一些编程经验的人们(如学过计算机基础课程的大学生)的Python编程著做。并假定读者对于计算机的基础概念、程序和编程,都有必定的理解,可是没用过Python。框架

书中介绍了Python的基本特征,深刻讨论了各方面的重要问题、高级机制和重要技术,目标是帮助读者深刻理解Python语言,理解如何用好这门语言,理解如何用它写出真正能用的良好程序。异步

总而言之,本书是一本全面介绍Python语言各方面特征和编程技术的著做,其内容涵盖了Python核心语言的全部方面,讨论的内容足以支持读者使用Python去开发复杂的大型Python程序。

Python语言的发展和应用

Python语言目前由Python软件基金会(Python Software Foundation,PSF)主导开发和管理。PSF是一个非营利性的国际组织。Python的官方网址为python.org,在那里能够找到有关Python语言和系统开发的最新信息,还有许多资源信息和连接。

Python语言的开发经历了许多版本。2000年发布的Python 2.0代表该语言进入了一个新阶段,也是国际上较普遍地接受它的标志性事件。Python 3.0于2008年年末发布,设计中整合了有关语言发展的许多成熟想法,对语言作了全面清理,修正了许多重要缺陷,使整个语言的概念体系更加清晰,各方面的结构更具备统一性。

目前,Python的发展和使用还处于2.0版与3.0版并存的阶段。PSF早已宣告Python 2.7是Python 2的最后版本,从此只作有限完善,再也不作大的版本升级,开发和研究力量将集中到Python 3.0的开发。通过几年发展,Python 3.5于2015年9月发布,Python 3.6于2016年12月发布。有统计显示,目前,Python 2.0和3.0在实际开发中的使用比例大约各占一半(2016年下半年的状况),后者的使用比例正在不断上升。有消息说PSF和各重要Python库的开发者都已肯定,在2020年之后再也不支持Python 2。

因为这些状况,本书选择Python 3.0做为工做语言,以适应发展须要。书中全部实例(及所附代码)都在3.5或3.6版本的系统中开发和测试,但这些代码并不特定于这些版本(除个别专门说明的例外),大都能在各类Python 3.0版本的系统上运行。

Python语言的特色

Python的一个重要设计目标是让程序简单、清晰和优雅,坚持一套整齐划一的设计风格。Python程序具备易写、易读、易维护的特色,受到广大程序员欢迎。这些特质也是致使Python的使用愈来愈普遍的缘由。21世纪以来,Python已发展为世界上最受欢迎的编程语言之一,其使用很是普遍。国际上一些公司作过(或一直在作)各类编程语言使用状况的调查,统计结果中Python都位于前四五名以内。它还被TIOBE编程语言排行榜(最有影响力的语言排行榜之一)评为2010年的年度语言。

Python被普遍认为是一种容易入门的语言。实际上,Python语言机制的跨度比较大,从完成最简单计算的表达式开始,一直延伸到许多当前最早进的编程概念,如面向对象的程序设计、数据抽象、迭代器、异步编程等。这些状况有利于学习者在一个语言里逐步深刻地学习许多编程概念和技术。Python用正文缩进形式表现程序的结构,具备较好的可读性。

Python是一种比较高级的编程语言。除了最基本的编程机制外,它还提供了使用方便的数据功能,能够很方便地组织和管理大批数据。Python的全部编程机制和结构都围绕着**对象**的概念,程序里定义和操做的各类实体都是对象,不只全部数据都是对象,函数和类等也是对象。它也能很好支持**面向对象编程**的理念和相关技术。

因为其基本设计的一些特色,Python代码和部件比较容易重用,已开发的程序容易修改和扩充,有利于软件的升级改造,能够减轻软件开发者的工做负担,提升程序开发的效率。此外,Python语言的设计也为开发大规模软件系统提供了很好支持。这些是许多IT公司乐于选择和使用Python做为其主要开发语言的重要缘由。

在用Python开发程序时,能够采用交互式的执行方式,随时把代码发送给系统,马上看到执行效果。这种方式令人更容易在编程中作各类试验,能够提升工做效率。一个Python程序文件(称为模块)的内容就是一系列简单或复杂的命令的序列。人们也把这样的语言称为**脚本语言**(script language),其程序就像一个工做脚本。

实际上,Python并非简单的脚本语言,而是一个能支持大规模软件开发的通用编程语言,其实现具备较高的执行效率。PSF的Python系统带有一个很大的标准库,提供了不少在实际开发中很是有用的功能。此外,全世界的开发者已经为Python开发了面向各类应用领域的大量专用程序包,例如面向图形用户界面的设计和编程,面向网络应用、数值计算、数据统计和处理、图形图像处理、可视化等。针对全部重要应用领域,均可以找到相关的程序包,大大方便了人们用Python开发领域应用软件和综合性软件的工做。

Python语言和标准库的设计特别考虑了可扩充性,提供了丰富的接口和工具,使有经验的程序员比较容易使用其余语言,例如C、C++、CPython(一种专门用于扩充Python的C语言工具)等编写Python模块,而后能像Python标准库包同样方便地使用。这种状况也使一些大公司把Python用做高级的**粘接语言**(glue language),用一些较低级的语言实现一批性能要求较高的完成具体工做任务的模块,然后用Python实现整个系统的高层控制和调度。这样作,既能得到很好的开发效率,也有利于修改和扩充。

Python基金会提供最新版本的Python语言系统和基本开发环境,任何人均可以避免费获取。该系统能够在各类主流计算机和软件平台上运行,包含了丰富的标准程序库和完整文档。此外,也存在另一些商业的或非商业的Python系统可供选择。通过多年使用,全世界的Python开发者和使用者已经造成了一个活跃的专业社群,活跃在世界各地(包括中国),探讨、交流学习和使用Python的经验。互联网有不少与Python有关的信息,有许多Python讨论组。这些都促进了Python语言的学习和传播。

固然,Python也不是天衣无缝的(完美的语言并不存在),也有些缺点。还有一些使用须要注意的问题。后面讨论中也会提到一些这方面的状况。

Python的应用状况

Python已经有了很是普遍的实际使用。国际上的许多知名IT公司和机构以其做为主要开发语言,如美国的Google、Yahoo!、Dropbox等大公司,CERN(欧洲原子能研究中心)、NASA(美国国家航空航天局)等重要机构,还有大量较小的公司和机构。国内企业的应用正在发展,有较大影响的豆瓣网就是用Python开发的。

此外,全世界Python社区一直在努力,开发了许多适合各领域须要的Python包,这些工做也大大推进了Python的应用。例如,Python的科学计算专用扩展库,包括NumPy(高效的数组数据处理)、SciPy(高性能数值运算)和matplotlib(数学绘图库)等。大量面向数据处理和计算的开源包也为Python使用提供了接口(可做为库调用,支持Python应用开发),如著名的计算机视觉库OpenCV、三维可视化库VTK、医学图像处理库ITK等。Python语言与这些库结合,构成的开发环境很适合工程技术人员和科研人员处理实验数据、制做图表,以及开发科学和工程计算方面的应用程序。在应用系统领域,Python社群开发了一批支持网络应用开发的Python库和其余方面的库及编程框架,这些工做和后续经验的积累,已经使Python成为目前使用最多的应用系统开发语言之一。

Python还被普遍用于复杂的和大规模的数据处理,成为目前人们在研究、开发大数据和人工智能等热门发展方向时使用最多的语言之一。

Python系统和编程环境

本节简单介绍PSF主导开发的CPython系统及其附带的编程环境。对初学者而言,使用这个系统及其所带的程序包就足够了。一些开源社团或软件厂商开发了更强大的开发环境,利用CPython的功能或其余Python实现。鉴于本书的基本设想和目标读者群,这里不许备涉及任何超出CPython系统的内容。有兴趣的读者能够本身学习。

Python是一种高级语言,具备易读易用的形式。为了运行Python程序,须要有一个Python解释器来填补Python源程序和计算机之间的鸿沟。PSF的Python系统(CPython,如下说Python系统时专指这个系统)的主要部分就是一个解释器[1]。

下面以Windows系统中安装Python的状况为例,在其余系统里的安装状况相似。从PSF网站或其余地方下载Python安装文件,在所用计算机环境成功安装后,一般能够看到快捷启动方式。Python系统各部分的安装位置、系统的启动方式、启动后窗口显示的状况,在不一样环境里可能有些不一样,但在功能上没有本质差异。

以命令行方式启动Python解释器,启动后的状况如图1所示。解释器显示版本等信息,最后一行是**提示符**串`>>>`,能够在这里输入要求执行的命令(程序)。

 

图 1 启动Python解释器后显示的命令行窗口

Python解释器采用解释方式工做。一旦获得一个完整的程序单元,它就执行该单元并输出结果,而后重复。后面还会介绍解释器工做方式的一些细节。

CPython提供了一个程序开发环境IDLE,使程序员能够方便地编辑程序并随时运行。启动IDLE将看到一个窗口,顶部有标准的菜单条。图2显示了IDLE的解释执行窗口的一个状况[2],能够看到解释器的提示符。输入一个程序单元(表达式或语句)后换行,解释器就会执行它并显示结果。这里显示的是执行3个表达式后的状况。第一个表达式要求计算1的值,解释器给出1;第二个表达式要求计算1+2;第3个表达式要求计算2的1000次幂,获得的大整数输出了几行。

 

图 2 启动IDLE执行窗口(Shell)的状况

IDLE的另外一种窗口是编辑器,如图3所示。在这里编辑的程序能够随时运行。一个代码单元称为一个**模块**,执行前须要保存为文件。Python术语中**模块**和**程序文件**基本是同义词,程序文件应该以py做为扩展名。

 

图 3 IDLE编辑器窗口

IDLE窗口支持常规的编辑命令。与执行窗口相比,这里多了Format和Run两个菜单。Format里的命令用于修改被编辑程序的格式。Run菜单用于启动模块执行,包括启动(或激活)关联执行窗口,调用解释器检查代码的语法,从空环境开始执行所编代码。运行时,解释器逐一执行其中语句,代码的标准输入和输出(常见的是用标准函数`input`和`print`)经过关联的执行窗口实现。

IDLE的执行窗口还有一个Debug菜单,其中命令服务于程序调试,须要与编辑窗口配合使用。有关功能将在“附录C”介绍。此外,运行IDLE时按F1功能键,或者经过Help菜单的相应选项,都能打开Python系统自带的语言文档。

用IDLE(或其余编辑器)开发的Python程序(模块)能够脱离编辑器,直接交给Python解释器执行。假设要执行的文件是prog.py,只需在命令行窗口中键入:

 

就能启动Python执行该程序了[假设Python解释器已在操做系统(OS)的命令路径上]。

IDLE是一个简单的开发环境,在开发复杂的应用系统时能够考虑用其余开发环境。有些通用开发环境带有配合使用CPython的插件,例如Eclipse,能够在安装插件后用于Python程序开发。

JetBrains公司的PyCharm是目前比较流行的一个专业开发环境,提供了很好的开发支持。因为Python程序文件的内容就是普通文本,彻底能够用任何文本编辑器编辑开发。CPython的标准库还提供了一些支持调试的包。

前面说过,CPython系统带有一个标准库,包含一大批程序包,系统文档中包含了标准库包的文档。标准库包的状况丰富多彩,有些包提供一些基础功能,如数学函数、文件操做、文件输入输出、随机数生成等。另外一些包提供通用的编程服务功能,例如字符串处理、正则表达式、数据持久性、图形用户界面编程、并发编程、程序源文件组织等。一些包提供了某些特殊功能,如支持Web应用程序、媒体处理、加密解密等;还有一些支持程序开发、调试等。若是开发中须要某些功能,但语言没提供,能够到标准库中找找。

本书主要关注Python语言自己的编程问题,以后的讨论将不涉及工具的使用。本书也不许备做为标准库的使用手册,对标准库的介绍将限于书中讨论Python语言基本功能和编程技术的须要。读者能够查看CPython的自带文档或其余材料,找到更多信息。

除了基本的Python系统和标准库程序包,一些我的、组织或公司也开发了许多第三方库,或对一些有用的库作了Python定制。有些库已被普遍使用,如支持图形用户界面开发的wxPython和PyQt。CPython推荐用自带的库安装工具pip安装其余库和程序包,Python参考手册中有说明。

 

《程序员学Python》

裘宗燕 著

本书是程序设计领域学者裘宗燕教授的潜心力做,程序员的Python入门和进阶指南。书中全面介绍了Python语言的各方面特征和应用技术,讨论了准确理解Python、正确使用Python语言开发程序所须要的深刻概念和状况,还介绍了用Python开发较大型或较复杂程序时应该了解的一些高级功能,如程序的模块组织和导入系统,生成器、闭包和装饰器,基本的和高级的面向对象编程机制和技术,以及做为Python最新扩展的协程和异步编程等。

此外,本书还提供完整的进阶内容和对应案例,让读者全面深刻地了解深度学习的知识和技巧,达到学以至用的目的。

相关文章
相关标签/搜索