Python的创始人为Guido van Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC 语言的一种继承。之因此选中Python(大蟒蛇的意思)做为该编程语言的名字,是由于他是一个叫Monty Python的喜剧团体的爱好者。 java
最新的TIOBE排行榜,Python赶超PHP占据第五, Python崇尚优美、清晰、简单,是一个优秀并普遍使用的语言。python
由上图可见,Python总体呈上升趋势,反映出Python应用愈来愈普遍而且也逐渐获得业内的承认!!!linux
Python能够应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。目前业内几乎全部大中型互联网企业都在使用Python,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、汽车之家、美团等。c++
目前Python主要应用领域:算法
Python在一些公司的应用: 编程
编程语言主要从如下几个角度为进行分类,编译型和解释型、静态语言和动态语言、强类型定义语言和弱类型定义语言,每一个分类表明什么意思呢,咱们一块儿来看一下。浏览器
编译和解释的区别是什么?网络
编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机能够直接以机器语言来运行此程序,速度很快; 多线程
而解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,因此运行速度是不如编译后的程序运行的快的. 框架
这是由于计算机不能直接认识并执行咱们写的语句,它只能认识机器语言(是二进制的形式)
优势:
缺点:
当咱们编写Python代码时,咱们获得的是一个包含Python代码的以.py
为扩展名的文本文件。要运行代码,就须要Python解释器去执行.py
文件。
因为整个Python语言从规范到解释器都是开源的,因此理论上,只要水平够高,任何人均可以编写Python解释器来执行Python代码(固然难度很大)。事实上,确实存在多种Python解释器。
当咱们从Python官方网站下载并安装好Python 2.7后,咱们就直接得到了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,因此叫CPython。在命令行下运行python
就是启动CPython解释器。
CPython是使用最广的Python解释器。教程的全部代码也都在CPython下执行。
IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所加强,可是执行Python代码的功能和CPython是彻底同样的。比如不少国产浏览器虽然外观不一样,但内核其实都是调用了IE。
CPython用>>>
做为提示符,而IPython用In [
序号
]:
做为提示符。
主要介绍linux环境下安装
cd /usr/local/src //进入安装目录
wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz
xz -d Python-3.6.2.tar.xz && tar xvf Python-3.6.2.tar //解压缩
cd Python-3.6.2 //进入解压目录
./configure --prefix=/usr/local/python3
make && make install
/usr/local/python3/bin/python3.6 --version //查看当前python版本
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3.6
yum -y install readline-devel
tar zxvf ipython-1.2.1.tar.gz //解压ipython
cd ipython-1.2.1 //进入到ipython目录下
/usr/local/python3/bin/python3.6 setup.py build
/usr/local/python3/bin/python3.6 setup.py install
ln -s /usr/local/python3/bin/ipython3 /usr/bin/
1. Python是一门解释型语言?
我初学Python时,听到的关于Python的第一句话就是,Python是一门解释性语言,我就这样一直相信下去,直到发现了*.pyc文件的存在。若是是解释型语言,那么生成的*.pyc文件是什么呢?c应该是compiled的缩写才对啊!
为了防止其余学习Python的人也被这句话误解,那么咱们就在文中来澄清下这个问题,而且把一些基础概念给理清。
2. 解释型语言和编译型语言
计算机是不可以识别高级语言的,因此当咱们运行一个高级语言程序的时候,就须要一个“翻译机”来从事把高级语言转变成计算机能读懂的机器语言的过程。这个过程分红两类,第一种是编译,第二种是解释。
编译型语言在程序执行以前,先会经过编译器对程序执行一个编译的过程,把程序转变成机器语言。运行时就不须要翻译,而直接执行就能够了。最典型的例子就是C语言。
解释型语言就没有这个编译的过程,而是在程序运行的时候,经过解释器对程序逐行做出解释,而后直接运行,最典型的例子是Ruby。
经过以上的例子,咱们能够来总结一下解释型语言和编译型语言的优缺点,由于编译型语言在程序运行以前就已经对程序作出了“翻译”,因此在运行时就少掉了“翻译”的过程,因此效率比较高。可是咱们也不能一律而论,一些解释型语言也能够经过解释器的优化来在对程序作出翻译时对整个程序作出优化,从而在效率上超过编译型语言。
此外,随着Java等基于虚拟机的语言的兴起,咱们又不能把语言纯粹地分红解释型和编译型这两种。
用Java来举例,Java首先是经过编译器编译成字节码文件,而后在运行时经过解释器给解释成机器文件。因此咱们说Java是一种先编译后解释的语言。
3. Python究竟是什么
其实Python和Java/C#同样,也是一门基于虚拟机的语言,咱们先来从表面上简单地了解一下Python程序的运行过程吧。
当咱们在命令行中输入python hello.py时,实际上是激活了Python的“解释器”,告诉“解释器”:你要开始工做了。但是在“解释”以前,其实执行的第一项工做和Java同样,是编译。
熟悉Java的同窗能够想一下咱们在命令行中如何执行一个Java的程序:
javac hello.java
java hello
只是咱们在用Eclipse之类的IDE时,将这两部给融合成了一部而已。其实Python也同样,当咱们执行python hello.py时,他也同样执行了这么一个过程,因此咱们应该这样来描述Python,Python是一门先编译后解释的语言。
4. 简述Python的运行过程
在说这个问题以前,咱们先来讲两个概念,PyCodeObject和pyc文件。
咱们在硬盘上看到的pyc天然没必要多说,而其实PyCodeObject则是Python编译器真正编译成的结果。咱们先简单知道就能够了,继续向下看。
当python程序运行时,编译的结果则是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中。
当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,若是找到,则直接载入,不然就重复上面的过程。
因此咱们应该这样来定位PyCodeObject和pyc文件,咱们说pyc文件实际上是PyCodeObject的一种持久化保存方式。
#!/usr/bin/env python 表示声明的解释器去环境变量中获取 # -*- coding:utf8 -*- 在python3中这句加了也没啥做用,加上这句表示以utf8的格式去编码python文件,python3默认是utf8格式编码