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

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

Python語言簡介

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

1.何為Python?

我們引用官網(wǎng)一句話:Python是一個高層次的結(jié)合了解釋性,編譯性,互動性和面向?qū)ο蟮哪_本語言.她的設(shè)計具有很強(qiáng)的可讀性,她比其他語言更有特色的語法結(jié)構(gòu)!(何為解釋性,編譯性,下面博主會詳解)

2.python的背景以及歷史

Python 是由 Guido van Rossum 在八十年代末和九十年代初,在荷蘭國家數(shù)學(xué)和計算機(jī)科學(xué)研究所設(shè)計出來的。

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

像 Perl 語言一樣,Python 源代碼同樣遵循 GPL(GNU General Public License)協(xié)議。

現(xiàn)在 Python 是由一個核心開發(fā)團(tuán)隊在維護(hù),Guido van Rossum 仍然占據(jù)著至關(guān)重要的作用,指導(dǎo)其進(jìn)展。

3.Python語言的特點

  • 易于學(xué)習(xí):Python有相對較少的關(guān)鍵字,結(jié)構(gòu)簡單,和一個明確定義的語法,學(xué)習(xí)起來更加簡單。
  • 易于閱讀:Python代碼定義的更清晰。
  • 易于維護(hù):Python的成功在于它的源代碼是相當(dāng)容易維護(hù)的。
  • 一個廣泛的標(biāo)準(zhǔn)庫:Python的最大的優(yōu)勢之一是豐富的庫,跨平臺的,在UNIX,Windows和Macintosh兼容很好
  • 互動模式:互動模式的支持,您可以從終端輸入執(zhí)行代碼并獲得結(jié)果的語言,互動的測試和調(diào)試代碼片斷
  • 可移植:基于其開放源代碼的特性,Python已經(jīng)被移植(也就是使其工作)到許多平臺。
  • 可擴(kuò)展:如果你需要一段運(yùn)行很快的關(guān)鍵代碼,或者是想要編寫一些不愿開放的算法,你可以使用C或C++完成那部分程序,然后從你的Python程序中調(diào)用。
  • 數(shù)據(jù)庫:Python提供所有主要的商業(yè)數(shù)據(jù)庫的接口。
  • GUI編程:Python支持GUI可以創(chuàng)建和移植到許多系統(tǒng)調(diào)用。
  • 可嵌入: 你可以將Python嵌入到C/C++程序,讓你的程序的用戶獲得"腳本化"的能力。

3.Python傳播速度

[圖片上傳失敗...(image-1f6505-1516071950321)]
上圖是截止2017年8月,國內(nèi)互聯(lián)網(wǎng)IT行業(yè)編程語言排行,可以看到python以及榮登榜單第五(現(xiàn)在好像第四了),可想而知Python是有多么的受大家歡迎.

4.Python的運(yùn)用領(lǐng)域

創(chuàng)始人guido希望Python在每個領(lǐng)域都能火起來,而Python也不負(fù)眾望,已經(jīng)在云計算,云服務(wù),人工智能,web,科學(xué)計算,大數(shù)據(jù)等領(lǐng)域站穩(wěn)了腳跟.在未來十年的時間里可以Python會越來越火,為了跟上時代的潮流,技多不壓身,學(xué)習(xí)和了解下總是沒有錯的!

Python程序的運(yùn)行原理

學(xué)習(xí)Python前,我們先來了解下Python程序的運(yùn)行原理.這樣有助于我們后期的學(xué)習(xí)中了解這個程序是怎么運(yùn)行的,以及對相關(guān)的原理有個大致的認(rèn)識.
Python程序運(yùn)行一般包含以下四個步驟:

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

詞法分析:詞法分析的工作就是將輸入的原始代碼分解成一些符號,例如標(biāo)識符,關(guān)鍵字,操作符等,這個過程是編譯器自動運(yùn)行,一般不會產(chǎn)生任何錯誤.

句法分析:詞法分析之后,程序會接收到分析之后的符號,并且用一種結(jié)構(gòu)來展現(xiàn)他們之間的關(guān)系(使用的是抽象語法樹)

編譯:在句法分析后,Python會接收這顆抽象語法樹,并將它轉(zhuǎn)化為一個或多個代碼對象,通過編譯器編譯出==字節(jié)碼(也就是中間碼)==.(除了復(fù)用性較高的字節(jié)碼.其他字節(jié)碼都會在程序運(yùn)行完后被刪除)

解釋:進(jìn)過編譯得到字節(jié)碼之后,需要讓我們程序真正的在平臺上跑起來,還需要對字節(jié)碼轉(zhuǎn)為機(jī)器能夠識別的==機(jī)器碼==,這個過程叫做解釋.

Tips:機(jī)器碼和字節(jié)碼的區(qū)別

1.機(jī)器碼是能夠在處理器上直接執(zhí)行的執(zhí)行碼,每條執(zhí)行控制cpu的工作.簡而言之,機(jī)器碼運(yùn)行速度要比字節(jié)碼快很多.

2.字節(jié)碼是需要在虛擬機(jī)這個抽象的計算機(jī)中執(zhí)行,每條執(zhí)行有虛擬機(jī)去處理,最后再由虛擬機(jī)轉(zhuǎn)換成機(jī)器碼和計算機(jī)本身去交互,也正是有了中間這個過程,導(dǎo)致字節(jié)碼運(yùn)行起來沒有機(jī)器碼那么迅速.

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

Q&A

對于Python語言的介紹就先到此結(jié)束了,理論再多,也需要實踐.下一篇我們開始學(xué)習(xí)下Python的環(huán)境安裝以及運(yùn)行我們的第一個HelloWord程序!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容