前言
Python的前世今生
资料来源
我出生在上世纪80年代, 那时候的人们已经开始用起了IBM和苹果电脑(虽然配置很低...), 那时候的电脑内存只有128K, 随便运行点什么东西就能占满内存。
那时候编译程序,大家都在考虑优化, 以至于程序员们写代码都像计算机一样思考,希望能写出符合机器口味的程序。这种思考方式很让我的父亲(Guido)烦恼,他希望能有一种编程语言,既可以充分利用计算机的性能,又可以轻松的编写。
1989年的圣诞节,Guido为了打发这个假期, 开始创造我的编译/解释器。我的名字也是从Guido最喜欢的电视剧《Monty Python's Flying Circus》由来。
时间来到了1991年, 第一代Python编译器诞生。由C语言实现,并且能够调用C的库(.so文件)。刚出生的我就已经有了类 Class
,函数 Function
,异常 Exception
,列表 List
,字典 Dictionary
这些类型。
环境搭建
Python是一个跨平台的编程语言,可以运行在Windows、MacOS和各种Linux上运行。
下载
目前,Python有两个版本,一个是2.x版,一个是3.x版,这两个版本是不兼容的(语法上有些差异)。本篇以Python3.x进行介绍
Python下载地址
往下翻可以看到这里有各个版本的Python下载链接
点击Python3.9.0后面的Download
按钮向下翻动可以看到有Windows的安装文件, 也有MacOS的安装文件,点击对应的第一列即可下载.
需要注意Windows上安装Python的时候要将Add Python x.x to PATH
勾选上
CentOS上可使用 yum install -y python3
进行安装。
环境验证
安装好Python后, Windows打开cmd命令行, MacOS打开终端,并在其输入python
(MacOS/Linux下为python3
, 因为自带Python2)
为Python选择一款解释器
解释器??? 什么是解释器?
想搞清楚什么是解释器, 就需要先了解一下代码是如何运行的。
首先,代码有这么几个概念
- 高级语言
- 低级语言
- 汇编语言
- 字节码
- 机器码
- 高级语言
简单的说就是更接近自然语言(人类语言)的一门编程语言, 高级语言往往写起来更加简洁易读。很幸运,Python就属于高级语言的一种。
- 低级语言
介于高级语言和汇编之间,类似于当今的C语言。
- 汇编语言
这个就不用多介绍了,汇编语言作为一门低级语言,想执行的话只需要翻译成机器码就可以直接被硬件执行。
- 字节码
字节码严格来说不算是编程语言,而是高级编程语言为了种种需求(可移植性、可传输性、预编译等)而产生的中间码(Intermediate Code)。
- 机器码
机器码是一组可以直接被CPU执行的指令集,
每一条指令都代表一个特定的任务,或者是加载,或者是跳转,亦或是计算操作等等。
所有可以直接被CPU执行的程序,都是由这么一系列的指令组成的。
机器码可是看作是编译过程中,最低级的代码,因外再往下就是交由硬件来执行了。
当然机器码也是可以被编辑的,但是以人类难以看懂的姿势存在,可读性非常差。
那么电脑想执行一段代码,会按照从高到低的方式依次进行翻译,直到翻译成机器可以执行的机器码,随后去执行。
说到这里可能你就理解了,对于Python这种高级语言,需要有一个程序将Python代码翻译成机器码去执行,那么这个翻译Python代码的程序就是我们要选择的解释器。
除了解释器解释执行,还有一种叫做编译执行。比如Java这样的语言就需要一个编译器来编译Java代码最终变成机器码执行。 那解释器和编译器有什么区别呢?
编译器,顾名思义需要将代码进行一次整体的编译,经过编译的产物已经有源代码变成了字节码(另一份代码),这时候再去交给CPU去执行。而解释器则是边解释边执行,可以理解为解释器读取一行代码就执行一行代码。
Python常用的解释器如下
- CPython
- IPython
- PyPy
- Jython
- IronPython
- CPython
官方提供的Python解释器,因为这个解释器是由C语言开发的,所以被叫做CPython。
目前CPython是使用最广的Python解释器,也推荐各位使用这个解释器。
- IPython
IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。
- PyPy
PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术(Just In Time),对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。
- Jython
Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。
- IronPython
IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。
如果需要在Java环境或.NET环境中与Python进行交互,最好使用网络调用,确保各程序之间的独立性。
持续更新...
PyCharm安装
网友评论