Python简介
做为主流的开源系统之一,Python拥有很大且活跃的开发社区,有不凡的速度进行版本更新和开发改进。python
1、Python技术上的优势
1.面向对象web
从根本上讲,Python是一种面向对象的语言。它的类模块支持多态、操做符重载和多重继承等高级概念。Python特有的简洁语法和类型,比其余OOP语言更容易学习。正则表达式
2.免费shell
Python的使用和分发是彻底免费的,而“免费”并不表明“无支持”。相反,Python的在线社区对用户需求的响应和商业软件同样快。数据库
3.可移植编程
Python的标准实现是由可移植的ANSI C编写的,能够在全部主流平台上编译和运行。后端
-
- Linux和Unix系统
- 微软Windows和DOS
- Mac OS
- BeOS、OS/二、VMS和QNX
- 实时操做系统如VxWorks
- Cray超级计算机和IBM大型机
- 运行Palm OS、PocketPC和Linux的PDA
- 运行Windows Mobile和Symbian OS的移动电话
- 游戏终端和iPod
4.功能强大服务器
从特性的观点看,Python是一个混合体。它丰富的工具集使它介于传统的脚本语言(如:Tcl、Scheme和Perl)和系统语言(如:C、C++和Java)之间。网络
-
- 动态类型:Python在运行过程当中随时跟踪对象的种类,不须要代码中复杂的类型和大小的声明。没有类型和变量声明,代码不受数据类型的约束,它每每能自动地应用一种广义上的对象。
- 自动内存管理:自动进行对象分配,当对象再也不使用时将自动撤销对象(“垃圾回收机制”),当须要时自动扩展或压缩。Python可以代替你进行底层的内存管理。
- 大型程序支持:Python包含了模块、类和异常等工具,这些工具容许你把系统组织为组件,使用OOP重用并定制代码,并以一种优雅的方式处理事件和错误。
- 内置对象类型:提供了经常使用的数据结构做为语言的基本组成部分,如:列表(list)、字典(dictionary)、字符串(string)。它灵活易于使用,如:内置对象能够根据需求扩展或收缩,能够任意地组织复杂的信息等。
- 内置工具:为了对以上对象类型的进行处理,Python自带了许多强大的标准操做,包括合并(concatenation)、分片(slice)、排序(sort)和映射(mapping)等。
- 库工具:为了完成更多特定的任务,Python预置了许多预编码的库工具,从正则表达式匹配到网络都支持。
- 第三方工具:因为Python是开放源代码,它鼓励开发者提供Python内置工具以外的预编码工具。从网络上,能够找到COM、图像处理、CORBA ORB、XML、数据库等不少免费的支持工具。
除这一系列外,Python保持了至关简洁的语法和设计,综合这一切获得的就是一个具备脚本语言全部可用性的强大编程工具。数据结构
5.可混合
Python程序能够以多种方式轻易地与其余语言编写的组件“粘接”在一块儿。
6.简单易用
运行Python程序,只需简单地键入Python程序并运行就能够。可当即执行程序,造成了一种交互编程体验和不一样状况下快速调整的能力,每每在修改代码后能当即看到程序改变后的效果。
7.简单易学
相对其余编程语言,Python语言的核心是很是简单易学。
2、Python用途
Python不只仅是一个设计优秀的编程语言,它可以完成现实中的各类任务。做为编制其余组件、实现独立程序的工具、它一般应用于各类领域。实际上,做为一种通用语言,Python的应用角色几乎是无限的,你能够在任何场合应用Python,从网站和游戏开发到机器人和航天飞机控制。
1.系统编程
Python对操做系统服务的内置接口,使其成为编写可移植的维护操做系统的管理工具和部件的理想工具。能够搜索文件和目录树,能够运行其余程序,用进程或线程进行并行处理等。Python的标准库绑定了POSIX以及其余常规操做系统(OS)工具:环境变量、文件、套接字、管道、进程、多线程、正则表达式模式匹配、命令行参数、标准流接口、Shell命令启动器、文件名扩展等。
2.用户图形接口
Python的简洁以及快速的开发周期十分适合开发GUI程序。内置了TKinter标准面向对象接口Tk GUI API,使Python程序能够生成可移植的本地观感的GUI。
3.Internet脚本
Python提供了标准Internet模块,它使得Python程序可以普遍地在多种网络任务中发挥做用,不管在服务器仍是在客户端都是如此。脚本能够经过套接字进行通讯;从发给服务器端的CGI脚本的表单中提取信息;经过FTP传输文件;解析、生成和分析XML文件;发送、接受、编写和解析Email;经过URL获取网页;从获取的网页中解析HTML和XML文件;经过XMLRPC、SOAP、Telnet通讯等。Python的库使这一切变得至关简单。网络上还能够得到不少使用Python进行Internet编程的第三方工具。此外,涌现了许多正对Python的优秀的Web开发工具包,如:Django、Flask、Tornado、Web.py、TurboGears、web2py、Pylons、Zope和WebWare等。不少工具包含了诸如对象关系映射器、模型/视图/控制器架构、服务器端脚本和模板,以及支持AJAX等功能,从而提供了完整的、企业级的Web开发解决方案。
4.组件集成
能够经过C/C++系统进行扩展,并可以嵌套C/C++系统的特性,使其可以做为一种灵活的黏合语言,能够脚本化处理其余系统和组件的行为。
5.数据库编程
对于传统的数据库需求,Python提供了对全部主流关系数据库系统的接口,如:Sybase、Oracle、Informix、ODBC、MySQL、PostgreSQL、SQLite等。定义了一种经过Python脚本存取SQL数据库的可移植的数据库API,这个API对于各类底层应用的数据库系统都是统一的。
6.快速原型
对于Python程序来讲,使用Python或C编写的组件看起来都是同样的,咱们一开始利用Python作系统原型,以后将组件移植到C/C++这样的编程语言上,和其余原型工具不一样,当原型肯定后,Python不须要重写。系统中不须要想C++这样执行效率的部分可保持不变,从而维护和使用变得轻松起来。
7.数值计算和科学计算编程
NumPy数值编程扩展包括不少高级工具,如:矩阵对象、标准数学库接口等。经过将Python与处于速度考虑而使用编译语言写的数值计算的常规代码进行集成,NumPy将Python变成一个慎密严谨并简单易用的数值计算工具。其余一些数值计算工具为Python提供动画、3D可视化、并行处理等功能的支持。
8. 游戏、图像、人工智能、XML、机器人等
Python的应用领域不少,如:
-
- 能够利用pygame系统使用Python对图形和游戏进行编程。
- 使用PySerial扩展在Windows、Linux以及更多系统上进行串口通讯。
- 用PIL、PyOpenGL、Blender、Maya和其余的一些工具进行图像处理。
- 用PyRo工具包进行机器人控制编程。
- 用xml库、xmlrpclib模块和其余一些第三方扩展进行XML解析。
- 使用神经网络仿真器和专业的系统shell进行AI编程。
- 使用NLTK包进行天然语言分析。
- 甚至可使用PySol程序下棋娱乐。
通常来讲,这些领域当中许多在很大程度上都是Python组件集成角色的再次例证。对于一种集成的通用型语言,Python的应用极其普遍。
3、Python的商业应用开发
列举一些比较有名的网站或应用。这其中有一些是用python进行开发,有一些在部分业务或功能上使用到了python,还有的是支持python做为扩展脚本语言。数据大部分来自Wikepedia和Quora。
-
- Reddit - 社交分享网站,最先用Lisp开发,在2005年转为python
- Dropbox - 文件分享服务
- 豆瓣网 - 图书、唱片、电影等文化产品的资料数据库网站
- Django - 鼓励快速开发的Web应用框架
- Fabric - 用于管理成百上千台Linux主机的程序库
- EVE - 网络游戏EVE大量使用Python进行开发
- Blender - 以C与Python开发的开源3D绘图软件
- BitTorrent - bt下载软件客户端
- Ubuntu Software Center - Ubuntu 9.10版本后自带的图形化包管理器
- YUM - 用于RPM兼容的Linux系统上的包管理器
- Civilization IV - 游戏《文明4》
- Battlefield 2 - 游戏《战地2》
- Google - 谷歌在不少项目中用python做为网络应用的后端,如Google Groups、Gmail、Google Maps等,Google App Engine支持python做为开发语言
- NASA - 美国宇航局,从1994年起把python做为主要开发语言
- Industrial Light & Magic - 工业光魔,乔治·卢卡斯创立的电影特效公司
- Yahoo! Groups - 雅虎推出的群组交流平台
- YouTube - 视频分享网站,在某些功能上使用到python
- Cinema 4D - 一套整合3D模型、动画与绘图的高级三维绘图软件,以其高速的运算和强大的渲染插件著称
- Autodesk Maya - 3D建模软件,支持python做为脚本语言
- gedit - Linux平台的文本编辑器
- GIMP - Linux平台的图像处理软件
- Minecraft: Pi Edition - 游戏《Minecraft》的树莓派版本
- MySQL Workbench - 可视化数据库管理工具
- Digg - 社交新闻分享网站
- Mozilla - 为支持和领导开源的Mozilla项目而设立的一个非营利组织
- Quora - 社交问答网站
- Path - 私密社交应用
- Pinterest - 图片社交分享网站
- SlideShare - 幻灯片存储、展现、分享的网站
- Yelp - 美国商户点评网站
- Slide - 社交游戏/应用开发公司,被谷歌收购
- Maya这款强大集成化3D建模和动画系统,提供了一个Python脚本编程API。
- Intel、Cisco、Hewlett-Packard、Seagate、Qualcomm和IBM使用Python进行硬件测试。
- Industrial Light&Magic、Pixar等公司制做动画电影。
- 在经济市场预测方面,JPMorgan Chase、UBS、Getco和CItadel使用Python。
- Los Alamos、Fermilab、JPL等使用Python实现科学计算任务。
- iRobot使用Python开发了商业机器人真空吸尘器。
- ESRI在其流行的GIS地图产品中使用Python做为终端用户的定制工具。
- NSA在加密和只能分析中使用Python
- IronPort电子邮件服务器产品中使用了超过100万行的Python代码实现其做业。
- OLPC使用Python创建其用户界面和动做模块。