当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件。要运行代码,就需要Python解释器去执行.py文件。

由于整个Python语言从规范到解释器都是开源的,所以理论上,只要水平够高,任何人都可以编写Python解释器来执行Python代码(当然难度很大)。事实上,确实存在多种Python解释器。

CPython

当我们从Python官方网站下载并安装好Python 2.7后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。

CPython是使用最广的Python解释器。教程的所有代码也都在CPython下执行。

IPython

IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。

CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。

PyPy

PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。

绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。如果你的代码要放到PyPy下执行,就需要了解PyPy和CPython的不同点

Jython

Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。

IronPython

IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。

小结

Python的解释器很多,但使用最广泛的还是CPython。如果要和Java或.Net平台交互,最好的办法不是用Jython或IronPython,而是通过网络调用来交互,确保各程序之间的独立性。

本教程的所有代码只确保在CPython 2.7版本下运行。请务必在本地安装CPython(也就是从Python官方网站下载的安装程序)。

此外,教程还内嵌一个IPython的Web版本,用来在浏览器内练习执行一些Python代码。要注意两者功能一样,输入的代码一样,但是提示符有所不同。另外,不是所有代码都能在Web版本的IPython中执行,出于安全原因,很多操作(比如文件操作)是受限的,所以有些代码必须在本地环境执行代码。

最新文章

  1. WPF(WP7、WP8)实现圆形图片
  2. Coursera课程下载和存档计划[转载]
  3. 51Nod 1079 中国剩余定理 Label:数论
  4. 【SVN】Unable to connect to a repository at URL 'svn://localhost/Test'
  5. POJ 2653 Pick-up sticks(线段相交)
  6. C#生成DBF文件
  7. Android用户界面UI组件--AdapterView及其子类(三) ExpandableListView
  8. C#中反射的概念及其使用(转)
  9. 证明与计算(2): 离散对数问题(Discrete logarithm Problem, DLP)
  10. UOJ#206. 【APIO2016】Gap 构造 交互题
  11. Hibernate入门(十二)离线条件检索
  12. idea 通过命令操作git
  13. 黄聪:利用ImageMagicK给图片加水印
  14. cf249D
  15. 了解WCF的前世今生之实现服务端(一)
  16. python中的with
  17. windows系统正常但linux系统下找不到文件的问题
  18. 【BZOJ 3812】 3812: 主旋律 (容斥原理**)
  19. 对于Ian的访谈,不少关于GAN的内容
  20. EF Core如何输出日志到Visual Studio的输出窗口

热门文章

  1. POJ3207+tarjan+2-sat
  2. [itint5]二叉树转换线索二叉树
  3. mybatis传入map参数parameterType
  4. C++不同进制整数
  5. 单独下载的Qt library则一般不带SSL(包括QT FAQ)
  6. 编程实现Windows关机、重启、注销
  7. Android:自定义适配器
  8. 面试大总结之二:Java搞定面试中的二叉树题目
  9. 用PHP尝试RabbitMQ(amqp扩展)实现消息的发送和接收
  10. 走迷宫(DFS)