一、Python介紹 Python(英國發音:/ˈpaɪθən/ 美國發音:/ˈpaɪθɑːn/),由吉多·範羅蘇姆(Guido van Rossum)於1989年發明,第一個公開發行版發行於1991年。 Python是一個高層次的結合瞭解釋型、動態強類型的、面向對象的腳本語言 Python 是一種 ...
一、Python介紹
Python(英國發音:/ˈpaɪθən/ 美國發音:/ˈpaɪθɑːn/),由吉多·範羅蘇姆(Guido van Rossum)於1989年發明,第一個公開發行版發行於1991年。
Python是一個高層次的結合瞭解釋型、動態強類型的、面向對象的腳本語言
-
Python 是一種解釋型語言: 這意味著開發過程中沒有了編譯這個環節,編譯型語言是一次把所有的代碼轉換成機器語言,然後寫成可執行文件;而解釋型是在程式運行的前一刻,還只有源程式而沒有可執行程式,程式每執行到源程式的某一條指令,才會有一個稱之為解釋程式的外殼程式將源代碼轉換成二進位代碼以供執行,總言之,就是不斷地解釋、執行、解釋、執行……所以,解釋型程式是離不開解釋程式的。打個比方:假如你打算閱讀一本外文書,而你不知道這門外語,那麼你可以找一名翻譯,給他足夠的時間讓他從頭到尾把整本書翻譯好,然後把書的母語版交給你閱讀;或者,你也立刻讓這名翻譯輔助你閱讀,讓他一句一句給你翻譯,如果你想往回看某個章節,他也得重新給你翻譯。 類似於PHP和Perl語言。
編譯型與解釋型,兩者各有利弊。前者由於程式執行速度快,同等條件下對系統要求較低,因此像開發操作系統、大型應用程式、資料庫系統等時都採用它,像C/C++、Pascal/Object Pascal(Delphi)、VB等基本都可視為編譯語言,而一些網頁腳本、伺服器腳本及輔助開發介面這樣的對速度要求不高、對不同系統平臺間的相容性有一定要求的程式則通常使用解釋性語言,如Java、JavaScript、VBScript、Perl、Python等等。
-
Python 是動態語言: 這意味著python程式只有在運行期間才去做數據類型檢查的語言,也就是說,在用動態類型的語言編程時,永遠也不用給任何變數指定數據類型,該語言會在你第一次賦值給變數時,在內部將數據類型記錄下來。Python和Ruby就是一種典型的動態類型語言,其他的各種腳本語言如VBScript也多少屬於動態類型語言。
靜態類型語言與動態類型語言剛好相反,它的數據類型是在編譯其間檢查的,也就是說在寫程式時要聲明所有變數的數據類型,C/C++是靜態類型語言的典型代表,其他的靜態類型語言還有C#、JAVA等。
-
Python 是強類型定義語言: 也就是說,一旦一個變數被指定了某個數據類型,如果不經過強制轉換,那麼它就永遠是這個數據類型了。舉個例子:如果你定義了一個整型變數a,那麼程式根本不可能將a當作字元串類型處理。強類型定義語言是類型安全的語言。
-
Python 是面向對象語言: 這意味著Python支持面向對象的風格或代碼封裝在對象的編程技術。
-
Python是初學者的語言:Python 對初級程式員而言,是一種偉大的語言,它支持廣泛的應用程式開發,從簡單的文字處理到 WWW 瀏覽器再到游戲。
二、Python特點
- 1.易於學習:Python有相對較少的關鍵字,結構簡單,和一個明確定義的語法,學習起來更加簡單。
-
2.易於閱讀:Python代碼定義的更清晰。
-
3.易於維護:Python的成功在於它的源代碼是相當容易維護的。
-
4.一個廣泛的標準庫:Python的最大的優勢之一是豐富的庫,跨平臺的,在UNIX,Windows和Macintosh相容很好。
-
5.互動模式:互動模式的支持,您可以從終端輸入並獲得結果的語言,互動的測試和調試代碼片斷。
-
6.攜帶型:Python可以運行在多種硬體平臺和所有平臺上都具有相同的介面。
-
7.可擴展:可以添加低層次的模塊到Python解釋器。這些模塊使程式員可以添加或定製自己的工具,更有效。
-
8.資料庫:Python提供所有主要的商業資料庫的介面。
-
9.GUI編程:Python支持GUI可以創建和移植到許多系統調用。
-
10.可擴展性:相比 shell 腳本,Python 提供了一個更好的結構,且支持大型程式。
三、 Python在一些知名企業中的應用
目前業內幾乎所有大中型互聯網企業都在使用Python,如:
1、國外的Google、Yahoo!、CIA、NASA、Youtube、Dropbox、Instagram、、facebook 、RedHat等
2、國內的 豆瓣、知乎、百度、騰訊、搜狐、金山、盛大、網易、阿裡、土豆、汽車之家、春雨醫生、美團等等
四、 Python擅長的領域
Python可以應用於眾多領域,如:數據分析、組件集成、網路服務、圖像處理、數值計算和科學計算等眾多領域。
- 網路應用:包括web網站 、伺服器後臺服務等,在這方面Python有優秀的web框架如Django\Tornado\Flask等,網路服務框架有著名的Twisted,非同步通信有牛X的eventlet.
- 科學運算:隨著NumPy、SciPy、matplotlib、ETS等眾多程式庫的開發,Python越來越適合於做科學計算。與科學計算領域最流行的商業軟體MATLAB相比,Python是一門真正的通用程式設計語言,比MATLAB所採用的腳本語言的應用範圍更廣泛,有更多程式庫的支持,適用於Windows和Linux等多種平臺,完全免費並且開放源碼。雖然MATLAB中的某些高級功能目前還無法替代,但是對於基礎性、前瞻性的科研工作和應用系統的開發,完全可以用Python來完成。
- GUI程式:python提供了多個圖形開發界面的庫,包括PyQt,WxPython,自帶的有Tkinter,這些庫允許Python程式員很方便的創建完整的、功能健全的GUI用戶界面。
- 系統管理工具:Python可以是做運維人員最喜歡用的語言了,可以用它來輕鬆的開發自動化管理工具、監控程式等,事實上現在很多開源軟體也都是用Python開發的,如用於IT配置管理的SaltStack\Ansible,做虛擬化的OpenStack,做備份用的Bacula等。
- 其它程式:你知道嗎?Python用來寫爬蟲也是很拿手的,還有做游戲,之前看社區里有個哥們花了不到300行代碼就實現了《憤怒的小鳥》的游戲,還可以用來做嵌入式開發、做驅動程式等,總之,Python能做的事情還是非常多的,好好學吧,很快你就會fall in love with this great language!
五、Python解釋器
當我們編寫Python代碼時,我們得到的是一個包含Python代碼的以.py
為擴展名的文本文件。要運行代碼,就需要Python解釋器去執行.py
文件。
由於整個Python語言從規範到解釋器都是開源的,所以理論上,只要水平夠高,任何人都可以編寫Python解釋器來執行Python代碼(當然難度很大)。事實上,確實存在多種Python解釋器,例如:CPython、IPython、PyPy、IronPython、Jython等。我們常用的有CPython、PyPy
CPython
當我們從Python官方網站下載並安裝好Python 2.7後,我們就直接獲得了一個官方版本的解釋器:CPython。這個解釋器是用C語言開發的,所以叫CPython。在命令行下運行python
就是啟動CPython解釋器。
CPython是使用最廣的Python解釋器。教程的所有代碼也都在CPython下執行。
PyPy
PyPy是另一個Python解釋器,它的目標是執行速度。PyPy採用JIT技術,對Python代碼進行動態編譯(註意不是解釋),所以可以顯著提高Python代碼的執行速度。
絕大部分Python代碼都可以在PyPy下運行,但是PyPy和CPython有一些是不同的,這就導致相同的Python代碼在兩種解釋器下執行可能會有不同的結果。如果你的代碼要放到PyPy下執行,就需要瞭解PyPy和CPython的不同點。