Python的特點(優點和缺點)


Python 的優點

1) 語法簡單

和傳統的 C/C++JavaC# 等語言相比,Python 對代碼格式的要求沒有那么嚴格,這種寬松使得用戶在編寫代碼時比較舒服,不用在細枝末節上花費太多精力。我來舉兩個典型的例子:

  • Python 不要求在每個語句的最后寫分號,當然寫上也沒錯;
  • 定義變量時不需要指明類型,甚至可以給同一個變量賦值不同類型的數據。


這兩點也是 PHPJavaScriptMATLAB 等常見腳本語言都具備的特性。

Python 是一種代表極簡主義的編程語言,閱讀一段排版優美的 Python 代碼,就像在閱讀一個英文段落,非常貼近人類語言,所以人們常說,Python 是一種具有偽代碼特質的編程語言。

偽代碼(Pseudo Code)是一種算法描述語言,它介於自然語言和編程語言之間,使用偽代碼的目的是為了使被描述的算法可以容易地以任何一種編程語言(Pascal,C,Java,etc)實現。因此,偽代碼必須結構清晰、代碼簡單、可讀性好,並且類似自然語言。

如果你學過數據結構,閱讀過嚴蔚敏的書籍,那你一定知道什么是偽代碼。

為什么說簡單就是殺手鐧?一旦簡單了,一件事情就會變得很純粹;我們在開發 Python 程序時,可以專注於解決問題本身,而不用顧慮語法的細枝末節。在簡單的環境中做一件純粹的事情,那簡直是一種享受。

2) Python 是開源的

開源,也即開放源代碼,意思是所有用戶都可以看到源代碼。

Python 的開源體現在兩方面:

① 程序員使用 Python 編寫的代碼是開源的。

比如我們開發了一個 BBS 系統,放在互聯網上讓用戶下載,那么用戶下載到的就是該系統的所有源代碼,並且可以隨意修改。這也是解釋型語言本身的特性,想要運行程序就必須有源代碼。

② Python 解釋器和模塊是開源的。

官方將 Python 解釋器和模塊的代碼開源,是希望所有 Python 用戶都參與進來,一起改進 Python 的性能,彌補 Python 的漏洞,代碼被研究的越多就越健壯。

這個世界上總有那么一小撮人,他們或者不慕名利,或者為了達到某種目的,會不斷地加強和改善 Python。千萬不要認為所有人都是只圖眼前利益的,總有一些精英會放長線釣大魚,總有一些極客會做一些炫酷的事情。

3) Python 是免費的

開源並不等於免費,開源軟件和免費軟件是兩個概念,只不過大多數的開源軟件也是免費軟件;Python 就是這樣一種語言,它既開源又免費。

如果你想區分開源和免費的概念,請猛擊:開源就等於免費嗎?用事實來說話

用戶使用 Python 進行開發或者發布自己的程序,不需要支付任何費用,也不用擔心版權問題,即使作為商業用途,Python 也是免費的。

4) Python 是高級語言

這里所說的高級,是指 Python 封裝較深,屏蔽了很多底層細節,比如 Python 會自動管理內存(需要時自動分配,不需要時自動釋放)。

高級語言的優點是使用方便,不用顧慮細枝末節;缺點是容易讓人淺嘗輒止,知其然不知其所以然。

5) Python 是解釋型語言,能跨平台

解釋型語言一般都是跨平台的(可移植性好),Python 也不例外,我們已經在《編譯型語言和解釋型語言的區別》中進行了講解,這里不再贅述。

5) Python 是面向對象的編程語言

面向對象是現代編程語言一般都具備的特性,否則在開發中大型程序時會捉襟見肘。

Python 支持面向對象,但它不強制使用面向對象。Java 是典型的面向對象的編程語言,但是它強制必須以類和對象的形式來組織代碼。

6) Python 功能強大(模塊眾多)

Python 的模塊眾多,基本實現了所有的常見的功能,從簡單的字符串處理,到復雜的 3D 圖形繪制,借助 Python 模塊都可以輕松完成。

Python 社區發展良好,除了 Python 官方提供的核心模塊,很多第三方機構也會參與進來開發模塊,這其中就有 Google、Facebook、Microsoft 等軟件巨頭。即使是一些小眾的功能,Python 往往也有對應的開源模塊,甚至有可能不止一個模塊。

7) Python 可擴展性強

Python 的可擴展性體現在它的模塊,Python 具有腳本語言中最豐富和強大的類庫,這些類庫覆蓋了文件 I/O、GUI、網絡編程、數據庫訪問、文本操作等絕大部分應用場景。

這些類庫的底層代碼不一定都是 Python,還有很多 C/C++ 的身影。當需要一段關鍵代碼運行速度更快時,就可以使用 C/C++ 語言實現,然后在 Python 中調用它們。Python 能把其它語言“粘”在一起,所以被稱為“膠水語言”。

Python 依靠其良好的擴展性,在一定程度上彌補了運行效率慢的缺點。

Python 的缺點

除了上面提到的各種優點,Python 也是有缺點的。

1) 運行速度慢

運行速度慢是解釋型語言的通病,Python 也不例外。

Python 速度慢不僅僅是因為一邊運行一邊“翻譯”源代碼,還因為 Python 是高級語言,屏蔽了很多底層細節。這個代價也是很大的,Python 要多做很多工作,有些工作是很消耗資源的,比如管理內存。

Python 的運行速度幾乎是最慢的,不但遠遠慢於 C/C++,還慢於 Java。

但是速度慢的缺點往往也不會帶來什么大問題。首先是計算機的硬件速度運來越快,多花錢就可以堆出高性能的硬件,硬件性能的提升可以彌補軟件性能的不足。

其次是有些應用場景可以容忍速度慢,比如網站,用戶打開一個網頁的大部分時間是在等待網絡請求,而不是等待服務器執行網頁程序。服務器花 1ms 執行程序,和花 20ms 執行程序,對用戶來說是毫無感覺的,因為網絡連接時間往往需要 500ms 甚至 2000ms。

2) 代碼加密困難

不像編譯型語言的源代碼會被編譯成可執行程序,Python 是直接運行源代碼,因此對源代碼加密比較困難。

開源是軟件產業的大趨勢,傳統程序員需要轉變觀念


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM