1. 程式人生 > >語言分類——python是一個什麼樣的語言

語言分類——python是一個什麼樣的語言

總結:python是一門動態、解釋型、強型別語言

一、編譯型和解釋型

編譯是把源程式的每一條語句都編譯成機器語言,並儲存成二進位制檔案,這樣執行時計算機可以直接以機器語言來執行此程式,速度很快。
優點:編譯器一般會有預編譯的過程對程式碼進行優化。因為編譯只做一次,執行時不需要編譯,所以編譯型語言的程式執行效率高。可以脫離語言環境獨立執行。
缺點:編譯之後如果需要修改就需要整個模組重新編譯。編譯的時候根據對應的執行環境生成機器碼,不同的作業系統之間移植就會有問題,需要根據執行的作業系統環境編譯不同的可執行檔案。

解釋則是隻在執行程式時,才一條一條的解釋成機器語言給計算機來執行,所以執行速度是不如編譯後的程式執行的快的.。
優點:良好的平臺相容性,在任何環境中都可以執行,前提是安裝瞭解釋器(虛擬機器)。靈活,修改程式碼的時候直接修改就可以,可以快速部署,不用停機維護。

缺點:每次執行都要解釋一遍,效能上不如編譯型語言。


二、動態語言和靜態語言

動態語言:在執行期間才去做資料型別檢查的語言,也就是說,在用動態型別的語言程式設計時,永遠也不用給任何變數指定資料型別,該語言會在你第一次賦值給變數時,在內部將資料型別記錄下來。
典型代表:Python、Ruby等

靜態型別:靜態型別語言與動態型別語言剛好相反,它的資料型別是在編譯期間檢查的,也就是說在寫程式時要宣告所有變數的資料型別

典型代表:C/C++、C#、JAVA等。

三、強型別語言和弱型別語言

強型別語言一旦一個變數被指定了某個資料型別,如果不經過強制轉換,那麼它就永遠是這個資料型別了,即型別安全語言。
弱型別語言是資料型別可以被忽略的語言。它與強型別定義語言相反, 一個變數可以賦不同資料型別的值。
強型別定義語言在速度上可能略遜色於弱型別定義語言,但是強型別定義語言帶來的嚴謹效能夠有效的避免許多錯誤。
“這門語言是不是動態語言”與“這門語言是否型別安全”之間是完全沒有聯絡的。
例如:Python是動態語言,是強型別定義語言(型別安全的語言); VBScript是動態語言,是弱型別定義語言(型別不安全的語言); JAVA是靜態語言,是強型別定義語言(型別安全的語言)。