首頁>技術>

Python是一種面向物件的、解釋型的、通用的、開源的指令碼程式語言,它之所以非常流行,我認為主要有三點原因:

Python 簡單易用,學習成本低,看起來非常優雅乾淨;Python 標準庫和第三庫眾多,功能強大,既可以開發小工具,也可以開發企業級應用;Python 站在了人工智慧和大資料的風口上,站在風口上,豬都能飛起來。

舉個簡單的例子來說明一下 Python 的簡單。比如要實現某個功能,C語言可能需要 100 行程式碼,二 Python 可能只需要幾行程式碼,因為C語言什麼都要得從頭開始,而 Python 已經內建了很多常見功能,我們只需要匯入包,然後呼叫一個函式即可。

簡單就是 Python 的巨大魅力之一,是它的殺手鐗,用慣了 Python 再用C語言簡直不能忍受。

本文就來彙總一下 Python 的特性,綜合對比一下它的優缺點。

Python 的優點

1) 語法簡單

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

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

這兩點也是PHP、JavaScript、MATLAB 等常見指令碼語言都具備的特性。

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

虛擬碼(Pseudo Code)是一種演算法描述語言,它介於自然語言和程式語言之間,使用虛擬碼的目的是為了使被描述的演算法可以容易地以任何一種程式語言(Pascal,C,Java,etc)實現。因此,虛擬碼必須結構清晰、程式碼簡單、可讀性好,並且類似自然語言。 如果你學過資料結構,閱讀過嚴蔚敏的書籍,那你一定知道什麼是虛擬碼。

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

2) Python 是開源的

開源,也即開放原始碼,意思是所有使用者都可以看到原始碼。

Python 的開源體現在兩方面:

① 程式設計師使用 Python 編寫的程式碼是開源的。

比如我們開發了一個 BBS 系統,放在網際網路上讓使用者下載,那麼使用者下載到的就是該系統的所有原始碼,並且可以隨意修改。這也是解釋型語言本身的特性,想要執行程式就必須有原始碼。

② Python 直譯器和模組是開源的。

官方將 Python 直譯器和模組的程式碼開源,是希望所有 Python 使用者都參與進來,一起改進 Python 的效能,彌補 Python 的漏洞,程式碼被研究的越多就越健壯。

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

3) 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 是直接執行原始碼,因此對原始碼加密比較困難。

開源是軟體產業的大趨勢,傳統程式設計師需要轉變觀念。

小編寄語

最後小編幫助大家整理了一套python教程,下面展示了部分,希望也能幫助對程式設計感興趣,想做資料分析,人工智慧、爬蟲或者希望從事程式設計開發的小夥伴,畢竟python工資也還可以,如果能幫到你請點贊、點贊、點贊。

python視訊系列:

電子書系列:

點贊才有哦,舉手之勞,非常感謝,以上就是2020必學必備語言Python的優缺點,大家看懂了嗎?歡迎大家留言補充。

最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 混合開發到底怎麼個混法?