1. 程式人生 > 其它 >『無為則無心』Python基礎 — 1、Python語言介紹

『無為則無心』Python基礎 — 1、Python語言介紹

目錄

1、Python語言介紹

維基百科中介紹:

Python的創始人為吉多·範羅蘇姆。1989年的聖誕節期間,吉多為了在阿姆斯特丹打發時間,決心開發一個新的指令碼解釋程式,作為ABC語言的一種繼承。

ABC是由吉多參加設計的一種教學語言。就吉多本人看來,ABC這種語言非常優美和強大,是專門為非專業程式設計師設計的。但是ABC語言並沒有成功,究其原因,吉多認為是非開放造成的。吉多決心在Python中避免這一錯誤,並獲取了非常好的效果,完美結合了C和其他一些語言的習慣。

在1991 年,第一個 Python 直譯器 誕生,它是用 C 語言實現的,並能夠呼叫 C 語言的庫檔案。

之所以選中Python(蟒蛇)作為程式語言的名字,是因為他是BBC電視劇《蒙提派森的飛行馬戲團》(Monty Python’s Flying Circus)的愛好者。

2、為什麼要學習Python

Python可以說是程式語言中罕見的既簡單又強大的一門語言,Python語言簡潔,語言優雅,功能強大,使用Python,你只需要專注於問題的解決方案,而不是苦惱於程式語言的語法和結構。Python的發明者吉多·範羅蘇姆Guido van Rossum(龜叔),給Python貼的標籤是“簡潔”和“優雅”,即對於程式語言的新手都能迅速上手使用Python語言。

Life is short , you need Python. :人生苦短,我用Python。

3、Python語言的優缺點

(1)優點

  • Python是一種解釋型語言,也就是說用Python寫完的程式碼,不需要進行編譯,直接就能夠在直譯器中執行的語言。
  • Python 是完全面向物件的語言(同Java)。
    • 函式、模組、數字、字串都是物件,在 Python 中一切皆物件。
    • 完全支援繼承、過載、多重繼承。
    • 支援過載運算子,也支援泛型設計。
  • Python 擁有一個強大的標準庫。
    Python 語言的核心只包含 數字、字串、列表、字典、檔案 等常見型別和函式,而由 Python 標準庫提供了 系統管理、網路通訊、文字處理、資料庫介面、圖形系統、XML 處理 等額外的功能。
  • Python 社群提供了大量的第三方模組。
    使用方式與標準庫類似。它們的功能覆蓋 科學計算、人工智慧、機器學習、Web 開發、 爬蟲程式、自動化運維、大資料(資料清洗)、雲端計算、圖形系統多個領域。
  • Python 是互動式語言:
    這意味著,您可以在 Python 提示符 >>> 後直接執行程式碼。互動模式的支援,您可以從終端輸入執行程式碼並獲得結果的語言,以互動的形式進行測試和除錯程式碼片斷。
  • 易於學習:Python有相對較少的關鍵字,結構簡單,明確定義的語法,學習起來更加簡單。
  • 易於閱讀:Python程式碼定義的更清晰。
  • 易於維護:Python的成功在於它的原始碼是相當容易維護的。
  • 可移植:基於其開放原始碼的特性,Python已經被移植到許多平臺。
  • 可擴充套件:如果你需要一段執行很關鍵的程式碼,或者是想要編寫一些不願開放的演算法,你可以使用C或C++完成那部分程式,然後從你的Python程式中呼叫。
  • 可嵌入: 你可以將Python嵌入到C/C++程式,讓你程式的使用者獲得"指令碼化"的能力。

(2)缺點

  • Python 的執行速度不夠快
    相比於比 Java、C、C++ 等程式,Python 的執行效率要稍微慢些。不過,這也不是一個很嚴重的問題,一方面,網路或磁碟的延遲,會抵消掉部分 Python 本身消耗的時間;另一方面,因為 Python 特別容易和 C 結合起來,因此,我們可以通過分離一部分需要優化速度的應用,將其轉換為可編譯的語言作為擴充套件,並在整個系統中使用 Python 指令碼將這部分應用連線起來,以提高程式的整體效率。
  • Python 的 GIL 鎖限制併發
    Python 的另一個大問題是,對多處理器支援不好。GIL 是指 Python 全域性直譯器鎖(Global Interpreter Lock),當 Python 的預設直譯器要執行程式碼檔案時,都需要先申請這個鎖。
    GIL鎖的目的是確保每個程序中只有一個執行緒執行,多個程序之間不會互相影響。這意味著,一個程序裡只有一個GIL鎖,執行緒只能拿到GIL鎖才能執行。所以python多執行緒的假的,甚至就幾乎等於Python是個單執行緒的程式。
    不過,我們也可以使用多程序的架構來提高程式的併發,也可以選擇不同的 Python 實現來執行我們的程式。
  • 原始碼加密困難
    因為Python 是解釋性語言,所以它的原始碼都是以明文形式存放的。Python 直接執行源程式,因此對原始碼加密比較困難。如果專案要求原始碼必須是加密的,那麼我們一開始就不應該選擇用Python來去實現。

總而言之,作為一種程式語言,Python在兼顧質量和效率方面有很好的平衡,尤其對新手而言,Python是一種十分友好的語言。

4、Python語言的設計哲學

為了更好的瞭解Python哲學理念及設計思想,我們可以先在任何一個Python互動直譯器中輸入import this命令(如命令列shell,IDEL中)。就會出現Python的一個彩蛋,描述了一系列Python的設計原則,閱讀一下這些文字,對於我們深入瞭解Python有許多幫助。

python
>>>  import this

Beautiful is better than ugly.
# 優雅勝於醜陋(Python 以編寫優美的程式碼為目標)

Explicit is better than implicit.
# 明確勝於含糊(優美的程式碼應當是明瞭的,命名規範的,風格相似的)

Simple is better than complex.
# 簡單勝於複雜(優美的程式碼應當是簡潔的,不要有複雜的內部實現)

Complex is better than complicated.
# 複雜勝於繁瑣(如果複雜不可避免,那程式碼間也不能有難懂的關係,要保持介面簡潔)

Flat is better than nested.
# 扁平勝於巢狀(優美的程式碼應當是扁平的,不能有太多的巢狀)

Sparse is better than dense.
# 間隔勝於緊湊(優美的程式碼有適當的間隔,不要奢望一行程式碼解決問題)

Readability counts.
# 可讀性很重要(優美的程式碼是可讀的)

Special cases aren't special enough to break the rules.
Although practicality beats purity.
# 即便假借特例的實用性之名,也不可違背這些規則(這些規則至高無上)

Errors should never pass silently.
Unless explicitly silenced.
# 不要包容所有錯誤,除非你確定需要這樣做(精準地捕獲異常,不寫except:pass風格的程式碼)

In the face of ambiguity, refuse the temptation to guess.
# 當存在多種可能,不要嘗試去猜測

There should be one-- and preferably only one --obvious way to do it.
# 而是儘量找一種,最好是唯一的一種明顯的解決方案(如果不確定,就用窮舉法)

Although that way may not be obvious at first unless you're Dutch.
# 雖然這種方式開始時並不容易,因為你不是 Python 之父(這裡的Dutch是指Guido)

Now is better than never.
Although never is often better than *right* now.
# 做也許好過不做,但不假思索就動手還不如不做(動手之前要細思量)

If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
# 如果你無法向人描述你的方案,那肯定不是一個好方案;反之亦然(方案測評標準)

Namespaces are one honking great idea -- let's do more of those!
# 名稱空間是一種絕妙的理念,我們應當多加利用(倡導與號召)

Guido van Rossum一定是個有趣的人,能將設計思想展現在python直譯器中,在“hello world”程式開始之前,展現他的一番人生哲學。在 Python 社群,吉多也被稱為“仁慈的獨裁者”。

總結兩點:

  • Python 開發者的哲學是:用一種方法,最好是隻有一種方法來做一件事(其他語言做一件事可能會有很多種方法,這樣的語言非常靈活,但是對初學者不太友好)。
  • 如果面臨多種選擇,Python 開發者一般會拒絕花俏的語法,而選擇明確沒有或者很少有歧義的語法。

總體概括Python的設計哲學就是:優雅、明確、簡單

5、Python語言的設計目標

1999 年,Guido van Rossum向 DARPA 提交了一條名為 “Computer Programming for Everybody” 的資金申請,並在後來說明了他對 Python 的目標:

  • 一門簡單直觀的語言並與主要競爭者一樣強大。
  • 開源,以便任何人都可以為它做貢獻。
  • 程式碼像純英語那樣容易理解。
  • 適用於短期開發的日常任務。

這些想法中的基本都已經成為現實,如今Python 已經成為一門流行的程式語言。

參考: