Python是一种面向对象的解释性的计算机程序设计语言,也是一种成熟、稳定、完好的通用性语言。具有丰富的类库。
Python也是一种高级语言,相比低级语言来说,编写Python程序耗时更少、程序更短,因此更easy阅读。也更easy保证程序的正确性。作为高级语言,Python是可移植的。相同的程序能够在不同类型的系统上执行。
这篇文章将介绍Python的历史、长处和缺陷,并为你介绍Python 3的基本的语法和一些高级特性。
Python语言介绍
Python的历史
Python的创始人为Guido van Rossum,1989年圣诞节期间。在阿姆斯特丹,Guido为了打发圣诞节的无趣。决心开发一个新的脚本解释程序。做为ABC语言的一种继承。之所以选中Python作为程序的名字,是由于他是一个Monty Python的飞行马戏团的爱好者。
ABC是由Guido參加设计的一种教学语言。就Guido本人看来,ABC这样的语言非常优美和强大,是专门为非专业程序猿设计的。
可是ABC语言并没有成功,究其原因,Guido觉得是非开放造成的。Guido决心在Python中避免这一错误(的确如此,Python与其他的语言如C、C++和Java结合的非常好)。
同一时候,他还想实如今ABC中闪现过但未曾实现的东西。
就这样。Python在Guido手中诞生了。
实际上。第一个实现是在Mac机上。能够说。Python是从ABC发展起来,主要受到了Modula-3(另一种相当优美且强大的语言。为小型团体所设计的)的影响。
而且结合了Unix shell和C的习惯。
Python语言的特点
从Python自身的特点出发,它简单易学,具有可移植性,假设你避免使用依赖于系统的特性,那么你的Python程序无需改动就可以在在Linux、Windows、FreeBSD等20多个系统上执行。
Python是一种脚本语言,因此也具有脚本语言的全部特点:解释的、面向对象的、内建的高级数据结构、支持模块和包、支持多种平台、可扩展。以下是Python自身的几个主要特性:
1)解释性
Python编写的程序能够直接从源码执行。
Python在执行时,首先会将.py文件里的源码编译成Python的字节码,然后再有Python虚拟机来执行这些编译好的字节码。基于C的Python编译出的字节码文件,一般是.pyc格式。
由于这个特性。你仅仅须要把你的Python程序复制到另外一台计算机上,它就能够工作了。从而使Python程序更加易于移植。
2)面向对象
Python即支持面向过程的编程,也支持面向对象的编程。相比于C++和Java。Python的面向对象编程的方式更加简单。
3)可扩展性
Python能够和其他语言制作的各种模块(尤其是C/C++)轻松地联结在一起。
因此,假设你想要一些关键代码执行得更快,你能够将那部分代码用C或者C++实现,然后在Python程序中使用它们。
4)可嵌入性
你也能够将Python嵌入到C/C++程序中。从而向你的程序用户提供脚本功能。
5)丰富的库
Python具有强大而丰富的库。能够帮组你处理各种工作。后面我们将详细介绍。
为什么使用Python
Python具有清晰的语法结构。因此也被称为可执行的伪代码。而且Python开发环境默认已经附带了非常多高级数据结构。如:列表、元组、字典、集合等。使编敲代码变得异常简单,仅须要非常少的代码就能实现你的想法。
Python也非常流行。使用广泛,具有丰富的模块库,能够大大的缩短开发周期。
基于Python以上的特性。使用Python能够避免花费太多精力在程序编写上,从而能够将精力很多其他的投入到处理数据的内在含义上。
Python语言的唯一不足就是性能问题,Python程序的执行效率不如Java或C,但在须要效率的地方,我们能够使用Python调用C编译的代码。
Python的安装和编程环境
在绝大部分Linux和Unix的系统中(包含Mac OS X),已经默认安装了Python的解释器,在提示符下输入python命令。能够得到:
# python
Python 2.6.6 (r266:84292, Nov 21 2013, 10:50:32)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
而在Windows下则须要安装,安装也非常easy,下载下来的msi文件(比如:python-3.3.1.msi),依照提示一次安装就可以。
在Windows环境下。提供了一个Python集成开发环境IDLE。打开后出现例如以下窗体:
在里面就能够执行Python脚本了。
除了Python默认提供的IDLE开发环境,Python另一些商业的IDE。如:Komodo、Wingware等,也存在一些免费的IDE,如:Eclipse(须要安装PyDev插件)、NotePad++(须要安装Python Script插件)等。
Python基础
值和类型
程序的主要工作就是对数据进行操作,而值就是构成数据的最基本单位。比方字符或者数字。在Python中能够通过type方法查看一个值的类型,比如:
>>> type('Hello,world!')
<class 'str'>
>>> type(17)
<class 'int'>
>>> type(1.34)
<class 'float'>
str表示字符串,而int表示整数,float表示浮点数,整数和浮点数都属于数字。
在Python中,布尔类型为bool:
>>> type(False)
<class 'bool'>
>>> type(1==0)
<class 'bool'>
变量
Python中直接使用赋值语句就能够创建新的变量:
>>> n = 10
>>> x = 3.91
>>> str = 'Hello,world!'
操作符和操作对象
Python中支持的操作符包含:+、-、、/和*(乘方)。比如:
>>> 2 ** 3
8
也能够使用变量:
>>> x = 59
>>> x / 60
0.9833333333333333
容器
容器用于存储数据,能够对容器进行遍历和查找操作。容器通常分为可变容器和不可变容器,可变容器支持对数据的插入、改动和删除,而不可变容器则仅仅能遍历和查找。
Python中的容器都能够作为迭代器,包含:列表、元组、range、字符串、集合和字典。容器存在一些公共的操作。请看序列概览。
列表是可变序列,通经常使用于存储同类型的元素。
元组和range都是不可变序列,元组通经常使用于存储异构数据的集合,而range则仅仅用于数字,通经常使用于for循环中。
字符串相应对象str,是使用Unicode编码的不可变序列。
集合是一组无序排列的可哈希的值。集合中不能包含重复的值。
字典是映射类型。是可变对象,用于将一个值映射到另一个值,字典中的值没有特殊的顺序,都是与一个key相应,key必须是不可变类型。
条件推断和循环
程序不总是顺序执行的,所以须要条件控制语句来支持分支处理。循环来处理重复多次调用,请參考条件推断和循环。
函数
当编写大型程序时。你可能发如今非常多地方都须要使用到相同或类似的代码。这是。你就能够将相同或类似的代码定义为函数,供全部须要它的地方调用。而且函数名也能够帮助我们更easy的理解代码。
模块
假设你实现的功能非常easy。那么使用一个文件就足够了。但假设你须要实现更大的功能,则你就会考虑将代码分解为多个文件,便于管理;或者你也可能想使用一些已有的代码。而不用将他们拷贝过来。
这时。你就须要使用模块。模块被定义为一个单独的文件,文件名称即为它的模块名称。在一个模块中的定义能被导入其他模块或者主模块中。
类
Python是面向对象的语言,Python的类提供了面向对象的全部特征:多态、封装和继承。
- 多态:能够对不同的对象使用相同的操作。它会依据对象(或类)类型的不同而表现出不同的行为。
- 封装:对外部世界隐藏对象的工作细节。
- 继承:以普通的类为基础建立特定的类对象。
错误和异常
程序总是须要处理异常情况,有些异常是错误,但有些则是正常情况下的异常流程,Python提供了错误和异常处理的有效机制。
很多其他特性
到这里。你已经能够使用Python编写脚本来解决这个问题,但Python还具有非常多的特性须要你了解。这些特性在实际使用中经常都会用到。比如:迭代器和生成器、文件等。
基础库
非常多通用的问题你都不须要从头開始编写代码,Python提供了基础库供你调用,一些经常使用的基础库你须要熟悉。而另一些仅仅有某些应用会用到的基础库你则须要选择性的了解。
高级主题
在对Python了解了这么多后,就是时候了解一些高级特性了。这些告警特性往往是针对某个领域的,比如:正則表達式()、多线程、网络编程等。
多线程分为:threading、sched、queue和_thread。
其他高级主题待补充。
接下来呢
接下来则是实战部分了,能够通过一些小的联系熟悉Python的语法。然后做一些项目将Python熟悉起来。