python

作者: 清歌扶酒_6258 | 来源:发表于2017-12-03 20:26 被阅读0次

    人生苦短,我用 Python —— Life is short, you need Python

    Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、汽车之家、美团等。

    目前Python主要应用领域:

    云计算: 云计算最火的语言, 典型应用OpenStack

    WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, Dropbox, 豆瓣。。。, 典型WEB框架有Django

    科学运算、人工智能: 典型库NumPy, SciPy, Matplotlib, Enthought librarys,pandas

    系统运维: 运维人员必备语言

    金融:量化交易,金融分析,在金融工程领域,Python不但在用,且用的最多,而且重要性逐年提高。原因:作为动态语言的Python,语言结构清晰简单,库丰富,成熟稳定,科学计算和统计分析都很牛逼,生产效率远远高于c,c++,java,尤其擅长策略回测

    图形GUI: PyQT, WxPython,TkInter

    Python一些著名的应用

    Pylons-Web应用框架

    Zope- 应用服务器

    Plone- 内容管理系统

    Django- 鼓励快速开发的Web应用框架

    Uliweb- 国人开发的轻量级Web框架

    TurboGears- 另一个Web应用快速开发框架

    Twisted–Python的网络应用程序框架

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

    MoinMoinWiki- Python写成的Wiki程序

    flask- Python 微Web框架

    tornado- 非阻塞式服务器

    Webpy- Python 微Web框架

    Bottle- Python 微Web框架

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

    Reddit - 社交分享网站

    Dropbox - 文件分享服务

    Pylons - Web应用框架

    TurboGears - 另一个Web应用快速开发框架

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

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

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

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

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

    1.2 Python 的设计目标

    1999 年,吉多·范罗苏姆向 DARPA 提交了一条名为 “Computer Programming for Everybody” 的资金申请,并在后来说明了他对 Python 的目标:

    一门简单直观的语言并与主要竞争者一样强大

    开源,以便任何人都可以为它做贡献

    代码像纯英语那样容易理解

    适用于短期开发的日常任务

    Python的设计哲学“优雅”、“明确”、“简单”。因此,Perl语言中“总是有多种方法来做同一件事”的理念在Python开发者中通常是难以忍受的。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可能被粗略地分类为“脚本语言”(script language),但实际上一些大规模软件开发计划例如Zope、Mnet及BitTorrent,Google也广泛地使用它。Python的支持者较喜欢称它为一种高级动态编程语言,原因是“脚本语言”泛指仅作简单程序设计任务的语言,如shellscript、VBScript等只能处理简单任务的编程语言,并不能与Python相提并论。

    Python本身被设计为可扩充的。并非所有的特性和功能都集成到语言核心。Python提供了丰富的API和工具,以便程序员能够轻松地使用C语言、C++、Cython来编写扩充模块。Python编译器本身也可以被集成到其它需要脚本语言的程序内。因此,很多人还把Python作为一种“胶水语言”(glue language)使用。使用Python将其他语言编写的程序进行集成和封装。在Google内部的很多项目,例如Google Engine使用C++编写性能要求极高的部分,然后用Python或Java/Go调用相应的模块。《Python技术手册》的作者马特利(Alex Martelli)说:“这很难讲,不过,2004 年,Python 已在Google 内部使用,Google 召募许多 Python 高手,但在这之前就已决定使用Python,他们的目的是 Python where we can, C++ where we must,在操控硬件的场合使用 C++,在快速开发时候使用 Python。”

    Python 特点

    Python 是完全面向对象的语言

    函数模块数字字符串都是对象,在 Python 中一切皆对象

    完全支持继承、重载、多重继承

    支持重载运算符,也支持泛型设计

    Python拥有一个强大的标准库,Python 语言的核心只包含数字字符串列表字典文件等常见类型和函数,而由 Python 标准库提供了系统管理网络通信文本处理数据库接口图形系统XML 处理等额外的功能

    Python 社区提供了大量的第三方模块,使用方式与标准库类似。它们的功能覆盖科学计算人工智能机器学习Web 开发数据库接口图形系统多个领域

    Python 的优缺点

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

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

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

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

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

    6.可移植性:由于它的开源本质,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++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。这个过程通过编译器和不同的标记、选项完成。运行程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行。而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码运行 程序。在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。这使得使用Python更加简单。也使得Python程序更加易于移植。

    8.面向对象:Python既支持面向过程的编程也支持面向对象的编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。

    9.可扩展性:如果需要一段关键代码运行得更快或者希望某些算法不公开,可以部分程序用C或C++编写,然后在Python程序中使用它们。

    10.可嵌入性:可以把Python嵌入C/C++程序,从而向程序用户提供脚本功能。

    11.丰富的库:Python标准库确实很庞大。它可以帮助处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。这被称作Python的“功能齐全”理念。除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等。

    12.规范的代码:Python采用强制缩进的方式使得代码具有较好可读性。而Python语言写的程序不需要编译成二进制代码。

    python 的缺点

    1.单行语句和命令行输出问题:很多时候不能将程序连写成一行,如import sys;for i in sys.path:print i。而perl和awk就无此限制,可以较为方便的在shell下完成简单程序,不需要如Python一样,必须将程序写入一个.py文件。

    2.独特的语法:这也许不应该被称为局限,但是它用缩进来区分语句关系的方式还是给很多初学者带来了困惑。即便是很有经验的Python程序员,也可能陷入陷阱当中。最常见的情况是tab和空格的混用会导致错误,而这是用肉眼无法分别的。

    3.运行速度慢:这里是指与C和C++相比。

    相关文章

      网友评论

        本文标题: python

        本文链接:https://www.haomeiwen.com/subject/sljcbxtx.html