Python基礎之Python語言類型

編程語言主要從如下幾個角度進行分類:算法

<li>編譯型和解釋型</li> <li>靜態語言和動態語言</li> <li>強類型定義語言和弱類型定義語言</li> <h4>編譯和解釋的區別是什麼?</h4> 編譯器把源程序的每一條語句都編譯成機器語言,並保存成二進制文件,這樣運行時計算機能夠直接以機器語言類運行此程序,速度很快。<br> 而解釋器則是隻在執行程序時,才一條一條的解釋成機器語言給計算機來執行,因此運行速度是不如編譯後的程序運行的快的,這是由於計算機不能直接識別並執行咱們寫的語言,它只認識機器語言。編程

編譯型 解釋型 混合型
C JavaScript JAVA
C++ Python C#
GO Ruby
Swift PHP
Object-C Perl
Pascal Erlang

<h4>編譯型和解釋性的優勢和不足</h4> <h5>編譯型</h5> 優勢:編譯器通常都會有預編譯的過程對代碼進行優化。由於編譯只作一次,運行時不須要編譯,因此編譯型語言的程序執行效率高,能夠脫離語言環境獨立運行。<br> 缺點:編譯以後若是須要修改就須要整個模塊從新編譯。編譯的時候根據對應的運行環境生成機器碼,不一樣的操做系統之間移植就會有問題,須要根據運行的操做系統環境編不一樣的可執行文件。 <h5>解釋型</h5> 優勢:有良好的平臺兼容性,在任何環境中均可以運行,前提是安裝瞭解釋器。靈活,修改代碼的時候直接修改就能夠,能夠快速部署,不用停機維護。<br> 缺點:每次運行的時候都要解釋一遍,在性能上不如編譯型語言。 <h3>Python的優缺點</h3> 優勢:<br> 1. Python的定位是「優雅」, "明確",「簡單」,因此Python程序看上去老是簡單易懂,初學者學Python,不但入門容易,並且未來深刻下去,能夠編寫那些很是複雜的程序。<br> 2. 開發效率很是高,Python有很是強大的第三方庫,基本上在計算機上實現的任何功能,Python官方庫裏都有相應的模塊進行支持,直接下載調用後,在基礎庫的基礎上在進行開發,大大下降開發週期,避免重複造輪子。<br> 3. 高級語言——當你用Python語言編寫程序的時候,你無需考慮像如何管理程序使用的內存一類的底層細節。<br> 4. 可移植性——因爲它的開源本質,Python已經被移植在許多平臺上。若是在編程時當心的避免使用依賴於系統的特性,那麼全部Python程序無需修改就幾乎能夠在市場上多有的系統平臺上運行。<br> 5. 可擴展性——若是你須要一段關鍵代碼運行得更快或者但願某些算法不公開,能夠把部分程序用C或者C++編寫,而後在Python程序中使用它們。<br> 6. 可嵌入性——能夠把Python嵌入C/C++程序,從而向你的程序用戶提供腳本功能。<br> 缺點:<br> 1. 速度慢,Python的運行速度相比C語言確實慢不少,跟Java比也要慢一些,所以這也是不少所謂的大牛不屑於使用Python的主要緣由,但其實這裏所指的運行速度慢在大部分狀況下用戶是沒法直接感知到的,必須藉助測試工具才能體現出來。<br> 2. 代碼不能加密,由於Python是解釋型語言,它的源碼都是以明文形式存放的,不過這也不算是一個缺點,由於若是項目要就源碼加密,那麼在最開始就不應用Python語言。 3. 線程不能利用多CPU問題,這是Python被人詬病最多的一個缺點。GIL即全局解釋器鎖,是計算機程序設計語言解釋器用於同步線程的工具,使得任什麼時候刻僅有一個線程在執行,Python的線程是操做系統的原生線程。在Linux上爲pthread,在Window上爲Win thread,徹底由操做系統調度線程的執行。一個Python解釋器進程內有一條主線程,以及多條用戶程序的執行線程。即便在多核CPU平臺上,因爲GIL的存在,因此禁止多線程的並行執行那個。<br>多線程

PS: Python中還有其餘的一些小缺點,這裏就不一一列舉了,可是,<strong>任何一門語言都不是完美的</strong>,都有擅長和不擅長作的事情,你們不要拿一個語言的劣勢跟另外一個語言的優點去比較,語言只是一個工具,是實現設計師思想的工具,拿相應的工具去作它擅長的事纔是正確的選擇。編程語言

相關文章
相關標籤/搜索