漫步人生路之Python旅途(一)探觀止矣

id_iot發表於2018-12-27

Python是一門什麼樣的程式語言
程式語言主要分為編譯型和解釋型,靜態語言和動態語言,強型別和弱型別,混合語言等。
編譯型語言:通過編譯器把原始碼編譯(compile)成機器語言,在經過連結(linker)將原始碼中所使用的庫串聯起來生成可執行二進位制檔案,這樣執行時    計算機可以直接以機器語言來執行程式。優點:執行效率高。缺點:編譯之後如果需要修改程式碼需要重新編譯整個模組。編譯的時候根據對應的執行環境生成機器碼,不同的作業系統之間移植就會有問題,需要根據執行的作業系統環境編譯不同的可執行檔案,代表語言:C,C++,object-C等。

解釋型語言:不需要編譯,只在程式執行時才逐條翻譯成機器語言。優點:跨平臺支援比較好,缺點:程式執行效率會比較慢。如:python,php,Perl等。
動態語言   :動態型別語言,是指資料型別,結構(如物件,函式)的檢查是在執行時做的。用動態型別語言程式設計時,不用給變數指定資料型別,該語言會    在你第一次賦值給變數時,在內部記錄資料型別,結構。在執行程式碼時可以根據某些條件改變變數的資料型別,結構。也就是說在執行時程式碼 可以根據某些條件改變自身結構,資料型別。代表語言:python,PHP,C#等。
靜態語言   :靜態型別語言,是指資料型別,結構的檢查是在執行前(如編譯階段)做的,執行時結構不可變。代表語言:C,C++等。

強型別語言:如果某個變數的資料型別不經過強制轉換,該變數型別是不會改變的。

弱型別語言:變數可以根據賦值型別調整自身的資料型別。

混合型語言:既然編譯型和解釋型各有缺點就會有人想到把兩種型別整合起來,取其精華去其糟粕。就出現了半編譯型語言。比如C#,C#在編譯的時候        不是   直接編譯成機器碼而是中間碼,.NET平臺提供了中間語言執行庫執行中間碼,中間語言執行庫類似於Java虛擬機器。.net在編譯成IL程式碼 後,儲存在dll中,首次執行時由JIT在編譯成機器碼快取在記憶體中,下次直接執行。Java先生成位元組碼再在Java虛擬機器中解釋執行。嚴格來說混合型語言屬於解釋型語言。C#更接近編譯型語言。
由此可知python語言是一門解釋,動態,弱型別語言。
python語言的優點:
1、python的定位是“優雅”、“明確”、“簡單”,所以python程式看上去總是簡單易懂,對於初學者容易入門。
2、開發效率高,python有非常強大的第三方庫,基本上你想通過計算機實現任何功能,python官方庫裡都有相應的模組進行支援,直接下載呼叫後,在基礎 庫的基礎上進行開發,大大降低開發週期,避免重複造輪子。
3、高階語言,當使用python語言編寫程式時,無需考慮如何管理記憶體等底層細節。
4、可移植性,由於它開源的本質,python已經被移植在許多平臺上,如果你小心的避免使用依賴於系統特性,那麼你的所有python程式無需修改就幾乎可以  在市場上所有的系統平臺執行。
5、可擴充套件性,如果你需要你的一段關鍵程式碼執行得更快或者希望某些演算法不公開,可以把部份程式用C或C++編寫庫,然後用python呼叫。
6、可嵌入式,可以把python嵌入到C/C++程式,從而向你的程式使用者提供指令碼功能。
python語言的缺點:
1、速度慢,由於是解釋型所以執行速度相比編譯型語言要慢,跟Java相比也要慢一些。
2、程式碼不能加密,因為python是解釋型語言,它的原始碼都是以明文形式存放的,所以如果專案要求原始碼必須保密或者加密,那一開始就不應該考慮用        python來實現。
3、強制縮排,單行語句不用寫分號對於習慣了C/C++使用者可能不是太習慣。

4、Python 2 與 Python 3 不相容,因為 Python 沒有向後相容,給所有的 Python 工程師帶來了煩惱。

相關文章