Python是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。如果您想要更快、更系统地学会Python,您最好采用边学边练(Python微课)的学习模式。如果您觉得Python的学习难度较高,不易理解,可以采用更易于理解的视频教程进行学习。

Python是纯粹的自由软件,源代码和解释器CPython遵循GPL(GNU General Public License)协议。Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进。Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。

Python在设计上坚持了清晰划一的风格,这使得Python成为一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。设计者开发时总的指导思想是,对于一个特定的问题,只要有一种最好的方法来解决就好了。这在由Tim Peters写的Python格言(称为The Zen of Python)里面表述为:There should be one-- and preferably only one --obvious way to do it. 这正好和Perl语言(另一种功能类似的高级动态语言)的中心思想TMTOWTDI(There's More Than One Way To Do It)完全相反。

Python的作者有意的设计限制性很强的语法,使得不好的编程习惯(例如if语句的下一行不向右缩进)都不能通过编译。其中很重要的一项就是Python的缩进规则。

Python与其他大多数编程语言(如C)的一个显著区别在于,模块的界限完全由每行代码的首字符在所在行的位置决定,而不是像C语言那样通过一对花括号{}来明确界定模块边界。这一点曾经引发过争议,因为自C等语言诞生以来,语言的语法含义与字符排列方式逐渐分离,被认为是程序语言的一种进步。然而,不可否认的是,Python通过强制程序员缩进(包括if、for和函数定义等所有需要使用模块的地方),确实使得程序更加清晰和美观。

Python的设计哲学是“优雅”、“明确”、“简单”。因此,Python开发者通常难以忍受Perl语言中“总是有多种方法来做同一件事”的理念。Python开发者的哲学是“用一种方法,最好是只有一种方法来做一件事”。在设计Python语言时,如果面临多种选择,Python开发者通常会拒绝花俏的语法,而选择明确且歧义较少的语法。由于这种设计观念的差异,Python源代码通常被认为比Perl具备更好的可读性,并且能够支撑大规模的软件开发。这些准则被称为Python格言。在Python解释器内运行import this可以获得完整的列表。

为了避免不成熟或不重要的优化,Python开发人员通常会尽量避开这些问题。一些针对非重要部位的加快运行速度的补丁通常不会被合并到Python内,因此很多人认为Python很慢。然而,根据二八定律,大多数程序对速度要求不高。在某些对运行速度要求很高的情况,Python设计师倾向于使用JIT技术,或者用C/C++语言改写这部分程序。可用的JIT技术是PyPy。

Python是一门完全面向对象的语言。函数、模块、数字、字符串都是对象,并完全支持继承、重载、派生和多继承,有助于增强源代码的复用性。Python支持重载运算符和动态类型。相对于Lisp这种传统的函数式编程语言,Python对函数式设计只提供了有限的支持。有两个标准库(functools和itertools)提供了Haskell和Standard ML中久经考验的函数式程序设计工具。

尽管Python可能被粗略地归类为“脚本语言”,但实际上,一些大规模软件开发项目,如Zope、Mnet和BitTorrent,以及Google,都在广泛地使用它。Python的支持者更倾向于将其称为一种高级动态编程语言,因为“脚本语言”这个术语通常指的是那些只能处理简单任务的编程语言,如shellscript和VBScript等,而这些并不能与Python相提并论。

Python本身的设计目标是可扩展的。并非所有的特性和功能都被集成到语言核心中。Python提供了丰富的API和工具,使得程序员能够轻松地使用C语言、C++、Cython等来编写扩展模块。此外,Python编译器本身也可以被集成到需要脚本语言的其他程序中。因此,许多人还将Python视为一种“胶水语言”(glue language),用于将其他语言编写的程序进行集成和封装。

在Google内部的许多项目中,例如Google Engine,性能要求极高的部分是用C++编写的,然后通过Python或Java/Go调用相应的模块。《Python技术手册》的作者马特利(Alex Martelli)表示:“这很难说清楚,但实际上,早在2004年,Python就已经在Google内部得到了广泛应用。当时,Google招募了许多Python高手,但在此之前,他们就已经决定要使用Python。他们的目标是:‘在可以的情况下使用Python,在必须的情况下使用C++’。也就是说,在需要操控硬件的场合使用C++,而在快速开发时则使用Python。”

Python是一种高级编程语言,其执行过程包括将源代码编译成字节码(byte code),然后由Python虚拟机(Python Virtual Machine)执行这些字节码。这种机制与Java和.NET的虚拟机类似,但Python虚拟机具有更高的抽象层次。

在Python中,源代码文件通常以.py格式保存,而编译后的字节码文件则以.pyc格式存储。此外,Python还可以在交互模式下运行,如Unix/Linux、Mac和Windows等操作系统都支持直接在命令行模式下运行Python交互环境。

Python具有以下优点:

1. 简单:Python代表着简单主义思想,阅读一个良好的Python程序就像阅读英语一样简单。它使你能够专注于解决问题而不是去搞明白语言本身。

2. 易学:Python非常容易上手,因为它有极其简单的说明文档[5]。

3. 速度快:Python的底层是用C语言编写的,许多标准库和第三方库也是用C编写的,因此运行速度非常快。

4. 免费、开源:Python是FLOSS(自由/开放源码软件)之一,用户可以自由地发布这个软件的拷贝、阅读它的源代码、对它进行修改、将其一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。

5. 高层语言:使用Python编写程序时无需考虑底层细节,如如何管理程序使用的内存等。

. 可移植性:由于Python的开源本质,它已经被成功地移植到了多个平台上。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE、PocketPC、Symbian以及Google基于Linux开发的Android平台。

7. 解释性:与编译型语言如C或C++不同,Python程序可以直接从源代码运行,而无需先编译成二进制代码。在计算机内部,Python解释器将源代码转换为字节码(中间形式),然后再将其翻译成计算机可执行的机器语言并运行。这种特性使得Python编程更加简单易用,同时也方便了程序的移植。

8. 面向对象:Python同时支持面向过程和面向对象的编程范式。在面向过程的语言中,程序是由过程或函数组成的;而在面向对象的语言中,程序是由数据和功能封装成的对象组成的。

9. 可扩展性:如果需要提高关键代码的执行速度或者希望某些算法不公开,可以在Python程序中使用C或C++编写的部分程序。

10. 可嵌入性:可以将Python嵌入到C/C++程序中,为用户提供脚本功能。

11. 丰富的库:Python拥有庞大的标准库,涵盖了正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统相关的操作。此外,还有许多高质量的第三方库,如wxPython、Twisted和Python图像库等。

12. 规范的代码:Python采用强制缩进的方式,使得代码具有良好的可读性。同时,Python程序不需要编译成二进制代码即可直接运行。

Python作为一种流行的编程语言,虽然具有许多优点,但也存在一些缺点。首先,Python在单行语句和命令行输出方面存在问题。与Perl和awk相比,Python不能将程序连写成一行,而是需要将程序写入一个.py文件。这给初学者带来了一定的困扰,因为他们可能无法像使用其他语言那样在shell下轻松完成简单程序。

其次,Python的语法独特,以缩进来区分语句关系的方式可能会让很多初学者感到困惑。即使是有经验的Python程序员,也可能因为混用tab和空格而导致错误,这是肉眼无法分辨的。

再者,Python的运行速度相对较慢,尤其是与C和C++相比。这可能会影响到一些对性能要求较高的应用场景。

然而,Python拥有丰富的工具库,可以帮助开发者更高效地进行图形界面开发。例如,Tkinter是Python默认的图形界面接口,提供了对Tk API的接口;PyGTK是用于python GUI程序开发的GTK+库;PyQt是用于python的Qt开发库,包含了许多模块和类;wxPython是一个GUI编程框架,类似于MFC;PIL(Python Imaging Library)提供了强大的图形处理能力,支持广泛的图形文件格式;Psyco是一个Python代码加速度器,可以提高Python代码的执行速度。

总之,尽管Python存在一些缺点,但通过丰富的工具库和第三方库的支持,开发者仍然可以充分利用Python的优势进行高效的编程。

Python标准库是Python编程语言的核心,提供了丰富的功能,包括但不限于处理国际化、编码、多媒体、数据存储、调试、网络通信、文件格式和系统工具等 。PyMedia是一个用于多媒体操作的python模块,提供了丰富而简单的接口用于多媒体处理(wav, mp3, ogg, avi, divx, dvd, cdda etc)。Pmw是Python megawidgets,Python超级GUI组件集,一个在python中利用Tkinter模块构建的高级GUI组件,每个Pmw都合并了一个或多个Tkinter组件,以实现更有用和更复杂的功能。PyXML是用Python解析和处理XML文档的工具包,包中的4DOM是完全相容于W3C DOM规范的。

关于XMPP协议模块,可以使用xmpppy模块支持该协议。关于第三方模块,Python社区提供了大量的第三方模块,使用方式与标准库类似。它们的功能无所不包,覆盖科学计算、Web开发、数据库接口、图形系统多个领域,并且大多成熟而稳定。第三方模块可以使用Python或者C语言编写。SWIG,SIP常用于将C语言编写的程序库转化为Python模块。Boost C++ Libraries包含了一组库,Boost.Python使得以 Python 或 C++ 编写的程序能互相调用。

. 网络通信功能

该库提供了丰富的网络通信功能,包括网络套接字、SSL加密通信和异步网络通信等。用户可以利用这些功能轻松地实现与远程服务器的通信和数据传输。

5. 网络协议支持

除了基本的网络通信功能外,该库还支持多种常见的网络协议,如HTTP、FTP、SMTP、POP、IMAP和NNTP等。此外,它还提供了编写网络服务器的框架,并遵循W3C格式标准,支持HTML、SGML和XML的处理。

6. 其他实用功能

除了上述主要功能外,该库还提供了一些其他实用的功能,例如国际化支持、数学运算、HASH算法以及Tkinter等。这些功能可以帮助用户更方便地进行开发工作。

Python开发环境推荐:

1. IDLE:Python内置IDE,随Python安装包提供。

2. PyCharm:由著名的JetBrains公司开发的IDE,带有一整套帮助用户提高Python开发效率的工具,如调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试和版本控制。此外,该IDE还提供了一些高级功能,用于支持Django框架下的专业Web开发。

3. Komodo和Komodo Edit:后者是前者的免费精简版。

4. PythonWin:ActivePython或pywin32均提供该IDE,仅适用于Windows系统。

5. SPE(Stani's Python Editor):功能较多的自由软件,基于wxPython。

6. Ulipad:功能较全的自由软件,基于wxPython;作者是中国Python高手limodou。

7. WingIDE:可能是功能最全的IDE,但不是自由软件(教育用户和开源用户可以申请免费key)。

8. Eric:基于PyQt的自由软件,功能强大。全名是:The Eric Python IDE。

9. DrPython:一个集成开发环境(IDE),专为DrDobbs杂志的用户设计,具有强大的调试和文档生成功能。

10. PyScripter:使用Delphi开发的轻量级的开源Python IDE,支持Python2.6和3.0版本。

11. PyPE:一个开源的跨平台的Python IDE。

12. bpython:类Unix操作系统下使用curses库开发的轻量级Python解释器,具有语法提示功能。

13. eclipse + pydev插件:方便调试程序。

14. emacs:自带Python支持,自动补全和重构等功能需要插件支持。

15. Vim:最新7.3版编译时可以加入Python支持,提供Python代码自动提示支持。

Python 著名应用包括:

1. TextMate:一款文本编辑器,支持代码高亮、自动补全等功能。

2. Netbeans IDE:一款集成开发环境,支持多种编程语言,如Java、C++、PHP等。

3. Sublime:一款轻量级的文本编辑器,支持多种插件扩展。

4. Pylons-Web应用框架:一个基于Python的Web应用开发框架,用于快速搭建Web应用。

5. Zope-应用服务器:一款开源的应用服务器,支持多种编程语言,如Python、Perl等。

6. Plone-内容管理系统:一款基于Python的内容管理系统,可用于构建企业级网站和应用程序。

7. Django-鼓励快速开发的Web应用框架:一个功能强大的Web应用开发框架,采用MVC模式设计,易于上手。

8. Uliweb-国人开发的轻量级Web框架:一款基于Python的Web框架,具有高性能和易用性的特点。

9. TurboGears-另一个Web应用快速开发框架:一个基于Python的Web应用开发框架,用于快速搭建Web应用。

10. Twisted--Python的网络应用程序框架:一个异步网络编程库,用于开发高效的网络应用程序。

此外,还有许多著名的Python软件和项目,如:

1. Python Wikipedia Robot Framework-MediaWiki的机器人程序

2. MoinMoinWiki-Python写成的Wiki程序

3. flask-Python 微Web框架

4. tornado-非阻塞式服务器

5. Webpy-Python 微Web框架

6. Bottle-Python 微Web框架

7. EVE-网络游戏EVE大量使用Python进行开发

8. Reddit - 社交分享网站

9. Dropbox - 文件分享服务

10. Fabric - 用于管理成百上千台Linux主机的程序库

11. Trac - 使用Python编写的BUG管理系统

12. Mailman - 使用Python编写的邮件列表软件

13. Mezzanine - 基于Django编写的内容管理系统

14. Blender - 以C与Python开发的开源3D绘图软件

对于Python的学习资料,你可以通过扫描下方二维码或打开微信搜一搜“w3cschool编程狮”关注公众号回复关键词【Python123】或者【Python资料包】免费领取。