Python/Python直譯器的型別都有哪些

2020-08-08 21:13:23

一、Python介紹

Python的創始人爲吉多·範羅蘇姆(Guido van Rossum),如下圖,少數幾個不禿頭的語言創始人。1989年的聖誕節期間,Guido爲了打發聖誕節的無聊時光,開始寫能夠解釋Python語言語法的直譯器。Python這個名字,來自Guido所摯愛的電視劇Monty Python’s Flying Circus。他希望這個新的叫做Python的語言,能符合他的理想:創造一種C和shell之間,功能全面,易學易用,可拓展的語言。

008-Python与Python解释器-龟叔.jpg?x-oss-process=style/watermark

最新的TIOBE排行榜,Python趕超PHP佔據第4, Python崇尚優美、清晰、簡單,是一個優秀並廣泛使用的語言。

Python系列教學,免費獲取,遇到bug及時反饋,討論交流可加扣裙<60 61 15 02 7>
 

Python可以應用於衆多領域,如:數據分析、元件整合、網路服務、影象處理、數值計算和科學計算等衆多領域。目前業內幾乎所有大中型網際網路企業都在使用Python,如:Youtube、Dropbox、BT、Quora(中國知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、騰訊、汽車之家、美團等。

一定要注意的一點,我們說的Python,其實說的是Python直譯器。

二、Python直譯器發展史

Python剛問世的時候,大多數公司原有的軟體是python2.+寫的(這不廢話嗎?),由於開發軟體是需要成本的,因此一些公司無法拋棄以前的程式碼,所以曾經在2008年推出3.+版本的python時,還需要推出2.+版本的升級版本,給公司2.+版本開發的軟一段時間過度。但是公司的軟體是有生命週期的,歷史遺留的2.+開發的軟體逐漸會消失,所以2.+版本不再更新了,以後統一都使用3.+版本。

  • 1989年,Guido開始寫Python語言的編譯器。
  • 1991年,第一個Python編譯器誕生。它是用C語言實現的,並能夠呼叫C語言的庫檔案。從一出生,Python已經具有了:類,函數,例外處理,包含表和詞典在內的核心數據型別,以及模組爲基礎的拓展系統。
  • Granddaddy of Python web frameworks, Zope 1 was released in 1999
  • Python 1.0 - January 1994 增加了 lambda, map, filter and reduce.
  • Python 2.0 - October 16, 2000,加入了記憶體回收機制 機製,構成了現在Python語言框架的基礎
  • Python 2.4 - November 30, 2004, 同年目前最流行的WEB框架Django 誕生
  • Python 2.5 - September 19, 2006
  • Python 2.6 - October 1, 2008
  • Python 2.7 - July 3, 2010
  • In November 2014, it was announced that Python 2.7 would be supported until 2020, and reaffirmed that there would be no 2.8 release as users were expected to move to Python 3.4+ as soon as possible
  • Python 3.0 - December 3, 2008 <span style='color:red'>(這裏要解釋清楚 爲什麼08年就出3.0,2010年反而又推出了2.7?是因爲3.0不向下相容2.0,導致大家都拒絕升級3.0,無奈官方只能推出2.7過渡版本)</span>
  • Python 3.1 - June 27, 2009
  • Python 3.2 - February 20, 2011
  • Python 3.3 - September 29, 2012
  • Python 3.4 - March 16, 2014
  • Python 3.5 - September 13, 2015
  • Python 3.6 - 2016-12-23 發佈Python3.6.0版
  • Python 3.7 - 2018-6-27 發佈Python3.7.0版
  • Python 3.8 - 2019-2-4發佈了Python 3.8.0.a1測試版

三、Python直譯器的型別

我們現在知道了Python是一門直譯語言,程式碼想執行,必須通過直譯器執行,Python的直譯器本身也可以看作是個程式(翻譯官司是哪國人不重要),這個程式是什麼語言開發的呢? 答案是好幾種語言? what? 因爲Python有好幾種直譯器,分別基於不同語言開發,每個直譯器特點不同,但都能正常執行我們的Python程式碼,下面 下麪分別來看下各種不同類型的Python直譯器的區別。

3.1 CPython

CPython是使用最廣且被的Python直譯器。本教學以CPython爲準。當我們從Python官方網站下載並安裝好Python 2.7後,我們就直接獲得了一個官方版本的直譯器:CPython。這個直譯器是用C語言開發的,所以叫CPython。在命令列下執行python就是啓動CPython直譯器。

3.2 IPython

IPython是基於CPython之上的一個互動式直譯器,也就是說,IPython只是在互動方式上有所增強,但是執行Python程式碼的功能和CPython是完全一樣的。好比很多國產瀏覽器雖然外觀不同,但內核其實都是呼叫了IE。CPython用>>>作爲提示符,而IPython用In [序號]:作爲提示符。

3.3 PyPy

PyPy是另一個Python直譯器,它的目標是執行速度。PyPy採用JIT技術,對Python程式碼進行動態編譯(注意不是解釋),所以可以顯著提高Python程式碼的執行速度。

絕大部分Python程式碼都可以在PyPy下執行,但是PyPy和CPython有一些是不同的,這就導致相同的Python程式碼在兩種直譯器下執行可能會有不同的結果。如果你的程式碼要放到PyPy下執行,就需要瞭解PyPy和CPython的不同點。

3.4 Jython

Jython是執行在Java平臺上的Python直譯器,可以直接把Python程式碼編譯成Java位元組碼執行。

3.5 IronPython

IronPython和Jython類似,只不過IronPython是執行在微軟.Net平臺上的Python直譯器,可以直接把Python程式碼編譯成.Net的位元組碼。

四、第一個Python程式

命令列輸入python,然後輸入print('hello world'),致敬這句偉大的話!如果執行成功,則表明你的Python安裝沒有任何問題。此時你可以想想發明計算機的那個時刻,計算機輸出了一句"hello world",那是孕育新生兒的內心的舒暢。

008-Python与Python解释器-第一个程序.jpg?x-oss-process=style/watermark

五、其它語言的hello world

接下來我們看看其他語言的hello world,讓你體會python的簡潔。

5.1 C++

#include <iostream>
 int main(void)
 {
  stdout<"hello world";
 }

5.2 C

#include <stdio.h>
int main(void)
{
printf("\nhello world!");
return 0;
}

5.3 JAVA

public class HelloWorld{
  // 程式的入口
  public static void main(String args[]){
    // 向控制檯輸出資訊
    System.out.println("hello world!");
  }
}

5.4 PHP

<?php  
             echo "hello world!";  
?>

5.5 Ruby

# 六、日本人開發的,砸日本車的時候,順手就把你拖出去打死了,祭天

 puts "hello world."

6.1 GO

package main
import "fmt"
func main(){
    fmt.Printf("hello world!\n");
}