1. 程式人生 > >我的“便(bian)宜”Python網課第一課

我的“便(bian)宜”Python網課第一課

數據 阿姆斯特丹 理論 領域 行程 csharp 時間 stack div

一、Python介紹

  python的創始人為吉多.範羅蘇姆(Guido van Rossum)。1989年的聖誕節期間,吉多.範羅蘇姆為了在阿姆斯特丹打發時間,決心開發一個新的腳本解釋程序,作為ABC語言的一種繼承。

  Python可以應用於眾多領域,如:數據分析、組件集成、網絡服務、圖像處理、數值計算和科學計算等眾多領域。目前業內幾乎所有大中型互聯網都在使用Python,如:Youtube、Dropbox、BT、Quora(中國知乎)、豆瓣、Google、Yahoo、Faacebook、NASA、百度、騰訊

汽車之家、美團等。

  目前Python主要應用領域:

*雲計算:雲計算最火的語言,典型應用Open Stack

*WEB開發:眾多優秀的web框架,典型的WEB框架有Django

*科學運算、人工智能:典型庫Numpy、SciPy、Matplotlib、Enthought、library、pandas

*系統運維:運維人員必備語言

*金融:量化交易、金融分析,在金融工程領域,Python不但在用,而且用的最多,而且重要性逐年提高。原因:作為動態語言的Python,語言結構清晰簡單、庫豐富、成熟穩定,科學計算和統計分析都很牛逼,生產效率遠遠高於C、C++、Java、尤其擅長策略回測。

*圖形GUI:PyQT、WxPython、TkInter。

  Python是一門怎樣的語言?

解釋和編譯的區別是什麽?

  編譯器是把源碼的每一條語句都編譯成及其語言,並保存成二進制文件,這樣運行時計算機可以直接以機器語言來運行此程序,速度很快。

  解釋器則是只在執行程序時,才一條一條的解釋成機器語言給計算機來執行,所以運行速度時不如編譯後的程序運行的快。

編譯型VS解釋型

  編譯型

  優點:編譯器一般會在預編譯的過程中對代碼進行優化。因為只編譯一次,運行時不需要編譯,所以編譯型語言的程序執行效率高。可以脫離語言環境獨立運行。

  缺點:編譯後如果需要修改就需要整個模塊重新編譯。編譯的時候根據對應的運行環境生成機器碼,不同的操作系統之間移植就會有問題,需要根據運行的操作系統環境編譯不同的可執行文件。

  解釋型

  優點:有良好的平臺兼容性,在任何環境中都可以運行,前提是安裝了解釋器(虛擬機)。靈活,修改代碼的時候直接修改就可以,可以哭訴部署,不用停機維護。

  缺點:每次運行的時候都需要解釋一遍,性能上不如編譯型語言。

動態語言和靜態語言

  通常我們說的動態語言,靜態語言是指動態類型語言和靜態類型語言。

  動態類型語言:動態類型語言是指在運行期間才去做數據類型檢查的語言,也就是說,在用動態類型語言編程時,永遠也不用還給任何變量指定數據類型,該語言會在你第一次賦值給變量時,在內部將數據類型記錄下來。Python和Ruby就是一種典型的動態類型語言,其他的各種腳本語言如VBScript也多少屬於動態類型語言。

  靜態類型語言:靜態類型語言與動態類型語言剛好相反,它的數據類型是在編譯期間檢查的,也就是說再寫程序時要聲明所有變量的是數據類型,C/C++是靜態類型語言的典型代表,其他的靜態類型語言還有Csharp(C#)、Java等。

強類型定義語言和弱類型定義語言

  強類型定義語言:強制數據類型定義的語言,也就是說,一旦一個變量被指定了某個數據類型,如果不經過強制轉換,那麽它就永遠是這個數據類型了。舉個例子:如果你定義了一個整形變量a,那麽程序根本不可能將a當作字符串類型處理。強制類型語言是類型安全的語言。

  弱類型定義語言:數據類型可以被忽略的語言。它與強制類型定義語言相反,一個變量可以賦不同的類型的值。

  強類型定義語言再速度上可能略遜色於弱類型語言,但是強類型定義語言帶來嚴謹性能夠有效的避免許多的錯誤。另外,“這門語言是不是動態語言”與“這門語言是否類型安全”之間完全沒有聯系。例如:Python是動態語言,是強類型定義語言(類型安全語言);VBScript是動態語言,是弱類型定義語言(類型不安全的語言);Java是靜態語言,是強類型定義語言(類型安全語言)。

  通過是上面介紹,我們可以看出,Python是一門動態解釋型的強類型定義語言。

Python解釋器

  當我們再編寫Python代碼時,我們得到的是一個包含Python的以.py為擴展名的文本文件。要運行代碼,就需要Python解釋器去執行.py文件。

  由於整個Python語言從規範到解釋器都是開源的,所以理論上,只要水平夠高,任何人都可以編寫Python解釋器來執行Python代碼。

  CPython

  這個解釋器是用C語言開發的。CPython是使用最廣的Python解釋器。

  PyPy

  PyPy是另外一個解釋器,它的目標是執行速度。PyPy采用JIT技術,對Python代碼進行動態編譯(註意不是解釋),所以可以顯著提高Python代碼的執行速度。絕大部分Python代碼都可以在PyPy下運行,但是PyPy和CPython有一些是不同的,這就導致相同的Python代碼在兩種解釋器下執行可能會有不同的結果。如果你的代碼要放到PyPy下執行,就需要了解不同。

我的“便(bian)宜”Python網課第一課