Python, 是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年末发明,第一个公开发行版发行于1991年,Python 源代码一样遵循 GPL(GNU General Public License)协议。Python语法简洁而清晰,具备丰富和强大的类库。它常被昵称为胶水语言,可以把用其余语言制做的各类模块(尤为是C/C++)很轻松地联结在一块儿。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),而后对其中有特别要求的部分,用更合适的语言改写,好比3D游戏中的图形渲染模块,性能要求特别高,就能够用C/C++重写,然后封装为Python能够调用的扩展类库。须要注意的是在您使用扩展类库时可能须要考虑平台问题,某些可能不提供跨平台的实现。html
主要特色python
简单:Python是一种表明简单主义思想的语言。阅读一个良好的Python程序就感受像是在读英语同样。它使你可以专一于解决问题而不是去搞明白语言自己。linux
易学:Python极其容易上手,由于Python有极其简单的语法。android
免费、开源:Python是FLOSS(自由/开放源码软件)之一。使用者能够自由地发布这个软件的拷贝、阅读它的源代码、对它作改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。程序员
高层语言:用Python语言编写程序的时候无需考虑诸如如何管理你的程序使用的内存一类的底层细节。正则表达式
可移植性:因为它的开源本质,Python已经被移植在许多平台上(通过改动使它可以工做在不一样平台上)。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/二、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平台。算法
解释性:一个用编译性语言好比C或C++写的程序能够从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。这个过程经过编译器和不一样的标记、选项完成。sql
运行程序的时候,链接/转载器软件把你的程序从硬盘复制到内存中而且运行。而Python语言写的程序不须要编译成二进制代码。你能够直接从源代码运行 程序。shell
在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,而后再把它翻译成计算机使用的机器语言并运行。这使得使用Python更加简单。也使得Python程序更加易于移植。数据库
面向对象:Python既支持面向过程的编程也支持面向对象的编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。
可扩展性:若是须要一段关键代码运行得更快或者但愿某些算法不公开,能够部分程序用C或C++编写,而后在Python程序中使用它们。
可嵌入性:能够把Python嵌入C/C++程序,从而向程序用户提供脚本功能。
丰富的库:Python标准库确实很庞大。它能够帮助处理各类工做,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其余与系统有关的操做。这被称做Python的“功能齐全”理念。除了标准库之外,还有许多其余高质量的库,如wxPython、Twisted和Python图像库等等。
规范的代码:Python采用强制缩进的方式使得代码具备较好可读性。而Python语言写的程序不须要编译成二进制代码。
Python 是一种不受局限、跨平台的开源编程语言,它功能强大且简单易学。于是获得了普遍应用和支持。
ArcGIS 9.0 社区中引入了 Python。此后,Python 被视为可供地理处理用户选择的脚本语言并得以不断发展。每一个版本都进一步加强了 Python 体验,从而为您提供更多的功能以及更丰富、更友好的 Python 体验。
ESRI 已将 Python 彻底归入 ArcGIS 中,并将其视为可知足咱们用户社区需求的语言。下面仅介绍 Python 的部分优点[1]:
Python 已延伸到 ArcGIS 中,成为了一种用于进行数据分析、数据转换、数据管理和地图自动化的语言,于是有助于提升工做效率。
强制缩进:这也许不该该被称为局限,可是它用缩进来区分语句关系的方式仍是给不少初学者带来了困惑。
单行语句和命令行输出问题:不少时候不能将程序连写成一行,如import sys;for i in sys.path:print i。而perl和awk就无此限制,能够较为方便的在shell下完成简单程序,不须要如Python同样,必须将程序写入一个.py文件。
系统编程:提供API(Application Programming Interface应用程序编程接口),能方便进行系统维护和管理,Linux下标志性语言之一,是不少系统管理员理想的编程工具。
图形处理:有PIL、Tkinter等图形库支持,能方便进行图形处理。
数学处理:NumPy扩展提供大量与许多标准数学库的接口。
文本处理:python提供的re模块能支持正则表达式,还提供SGML,XML分析模块,许多程序员利用python进行XML程序的开发。
数据库编程:程序员可经过遵循Python DB-API(数据库应用程序编程接口)规范的模块与Microsoft SQL Server,Oracle,Sybase,DB2,Mysql、SQLite等数据库通讯。python自带有一个Gadfly模块,提供了一个完整的SQL环境。
网络编程:提供丰富的模块支持sockets编程,能方便快速地开发分布式应用程序。不少大规模软件开发计划例如Zope,Mnet 及BitTorrent. Google都在普遍地使用它。
Web编程:应用的开发语言,支持最新的XML技术。
多媒体应用:Python的PyOpenGL模块封装了“OpenGL应用程序编程接口”,能进行二维和三维图像处理。PyGame模块可用于编写游戏软件。
Python的创始人为Guido van Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC 语言的一种继承。之因此选中Python(大蟒蛇的意思)做为程序的名字,是由于他是一个叫Monty Python的喜剧团体的爱好者。
ABC是由Guido参加设计的一种教学语言。就Guido本人看来,ABC 这种语言很是优美和强大,是专门为非专业程序员设计的。可是ABC语言并无成功,究其缘由,Guido 认为是非开放形成的。Guido 决心在Python 中避免这一错误。同时,他还想实如今ABC 中闪现过但不曾实现的东西。
就这样,Python在Guido手中诞生了。实际上,第一个实现是在Mac机上。能够说,Python是从ABC发展起来,主要受到了Modula-3(另外一种至关优美且强大的语言,为小型团体所设计的)的影响。而且结合了Unix shell和C的习惯。执行
Python在执行时,首先会将.py文件中的源代码编译成Python的byte code(字节码),而后再由Python Virtual Machine(Python 虚拟机)来执行这些编译好的byte code。这种机制的基本思想跟Java,.NET是一致的。然而,Python Virtual Machine与Java或.NET的Virtual Machine不一样的是,Python的Virtual Machine是一种更高级的Virtual Machine。
这里的高级并非一般意义上的高级,不是说Python的Virtual Machine比Java或.NET的功能更强大,而是说和Java 或.NET相比,Python的Virtual Machine距离真实机器的距离更远。或者能够这么说,Python的Virtual Machine是一种抽象层次更高的Virtual Machine。
基于C的Python编译出的字节码文件,一般是.pyc格式。
个人第一个Python程序
Python语言的几个要件
数据对象和组织
整型int,浮点数float,复数complex,逻辑值bool,字符串str
列表list,元组tuple,集合set,字典dict
赋值和控制流
表达式计算、函数调用、赋值
顺序、条件分支、循环
函数定义、类定义
Python数据类型
整数:0x表示十六进制
浮点数:科学计数法,1.23e9
字符串: '' 或者 ""
布尔值:True、False,可使用and、or和not运算
空值:用None表示,不能理解为0
Python变量
变量的概念基本上和初中代数的方程变量一致
变量就像贴在东西上的标签
命名规则:大小写英文、数字和下划线,且不能用数字开头
同一变量能够反复赋值,并且能够是不一样类型的变量
Python数据类型:整数int、浮点数float
〉 最大的特色是不限制大小
〉 浮点数受到17位有效数字的限制
〉 常见的运算包括加、减、乘、除、 整除、求余、幂指数等
〉 浮点数的操做也差很少
〉 一 些 常 用 的 数 学 函 数 如 sqrt/sin/cos等都在math模块中 import math math.sqrt(2)
以下图所示
Python数据类型:复数
〉 Python内置对复数的计算
〉 支持全部常见的复数计算
〉 对复数处理的数学函数在模 块 cmath中 import cmath cmath.sqrt(1+2j)
Python数据类型:逻辑值
〉 逻辑值仅包括True/False两个
〉 用来配合if/while等语句作条件判断
〉 其它数据类型能够转换为逻辑值: 例如数值:0与非0等
Python数据类型:字符串
最大的特色是Python字符串不可修 改,只能生成新的字符串
用双引号或者单引号均可以表示字 符串
多行字符串用三个连续单引号表示 〉 特殊字符用转义符号"\"表示 制表符 \ t ,换行符号 \ n
字符串操做 : +链接 、 *复制 、len长度 [start:end:step]用来提取一部分