從零開始學Python(一):Python語言的背景,發展,以及前景.

momoxiaomming發表於2018-01-23

本章是本系列的第一章,也是博主第一次寫python的相關的文章,這個系列打算出20-30篇,儘量會保持周更3篇左右的幅度,總結一下自己python的學習之路,也希望能夠幫助到想學卻又不知道如何開始學習python的人。由於本人知識有限,如果博文中有相關的紕漏或者錯誤,忘海涵!

本文的目錄結構: * {:toc}

一.Python語言簡介

新接觸的一門語言的時候,我們應該對我們將要學習的語言有個大致的瞭解,也許你常常聽過python,總是聽別人說有多牛多牛逼,但可能你心裡也沒有個清晰的認識,為啥python牛逼,她又是為何能讓全球的開發者為之瘋狂呢?不要著急,聽博主慢慢道來.

1.何為Python?

我們引用官網一句話:Python是一個高層次的結合瞭解釋性,編譯性,互動性和麵向物件的指令碼語言.她的設計具有很強的可讀性,她比其他語言更有特色的語法結構!(何為解釋性,編譯性,下面博主會詳解)

2.python的背景以及歷史

Python 是由 Guido van Rossum 在八十年代末和九十年代初,在荷蘭國家數學和電腦科學研究所設計出來的。

Python 本身也是由諸多其他語言發展而來的,這包括 ABC、Modula-3、C、C++、Algol-68、SmallTalk、Unix shell 和其他的指令碼語言等等。

像 Perl 語言一樣,Python 原始碼同樣遵循 GPL(GNU General Public License)協議。

現在 Python 是由一個核心開發團隊在維護,Guido van Rossum 仍然佔據著至關重要的作用,指導其進展。

3.Python語言的特點

  • 易於學習:Python有相對較少的關鍵字,結構簡單,和一個明確定義的語法,學習起來更加簡單。
  • 易於閱讀:Python程式碼定義的更清晰。
  • 易於維護:Python的成功在於它的原始碼是相當容易維護的。
  • 一個廣泛的標準庫:Python的最大的優勢之一是豐富的庫,跨平臺的,在UNIX,Windows和Macintosh相容很好
  • 互動模式:互動模式的支援,您可以從終端輸入執行程式碼並獲得結果的語言,互動的測試和除錯程式碼片斷
  • 可移植:基於其開放原始碼的特性,Python已經被移植(也就是使其工作)到許多平臺。
  • 可擴充套件:如果你需要一段執行很快的關鍵程式碼,或者是想要編寫一些不願開放的演算法,你可以使用C或C++完成那部分程式,然後從你的Python程式中呼叫。
  • 資料庫:Python提供所有主要的商業資料庫的介面。
  • GUI程式設計:Python支援GUI可以建立和移植到許多系統呼叫。
  • 可嵌入: 你可以將Python嵌入到C/C++程式,讓你的程式的使用者獲得"指令碼化"的能力。

3.Python傳播速度

從零開始學Python(一):Python語言的背景,發展,以及前景.
上圖是截止2017年8月,國內網際網路IT行業程式語言排行,可以看到python以及榮登榜單第五(現在好像第四了),可想而知Python是有多麼的受大家歡迎.

4.Python的運用領域

創始人guido希望Python在每個領域都能火起來,而Python也不負眾望,已經在雲端計算,雲服務,人工智慧,web,科學計算,大資料等領域站穩了腳跟.在未來十年的時間裡可以Python會越來越火,為了跟上時代的潮流,技多不壓身,學習和了解下總是沒有錯的!

Python程式的執行原理

學習Python前,我們先來了解下Python程式的執行原理.這樣有助於我們後期的學習中瞭解這個程式是怎麼執行的,以及對相關的原理有個大致的認識. Python程式執行一般包含以下四個步驟:

  • 詞法分析
  • 句法分析
  • 編譯
  • 解釋

詞法分析:詞法分析的工作就是將輸入的原始程式碼分解成一些符號,例如識別符號,關鍵字,操作符等,這個過程是編譯器自動執行,一般不會產生任何錯誤.

句法分析:詞法分析之後,程式會接收到分析之後的符號,並且用一種結構來展現他們之間的關係(使用的是抽象語法樹)

編譯:在句法分析後,Python會接收這顆抽象語法樹,並將它轉化為一個或多個程式碼物件,通過編譯器編譯出==位元組碼(也就是中間碼)==.(除了複用性較高的位元組碼.其他位元組碼都會在程式執行完後被刪除)

解釋:進過編譯得到位元組碼之後,需要讓我們程式真正的在平臺上跑起來,還需要對位元組碼轉為機器能夠識別的==機器碼==,這個過程叫做解釋.

Tips:機器碼和位元組碼的區別

1.機器碼是能夠在處理器上直接執行的執行碼,每條執行控制cpu的工作.簡而言之,機器碼執行速度要比位元組碼快很多.

2.位元組碼是需要在虛擬機器這個抽象的計算機中執行,每條執行有虛擬機器去處理,最後再由虛擬機器轉換成機器碼和計算機本身去互動,也正是有了中間這個過程,導致位元組碼執行起來沒有機器碼那麼迅速.

單從語言的本身的執行效率來講,編譯型的語言一般都要比解釋型的語言執行效率更低.舉個簡單的例子: java<Python<C

Q&A

對於Python語言的介紹就先到此結束了,理論再多,也需要實踐.下一篇我們開始學習下Python的環境安裝以及執行我們的第一個HelloWord程式!

相關文章