發(fā)布時(shí)間:2020-04-17 16:41:31來源:尚訓(xùn)網(wǎng)綜合
Python的創(chuàng)始人為吉多·范羅蘇姆(Guido van Rossum)。1989年的圣誕節(jié)期間,吉多·范羅蘇姆為了在阿姆斯特丹打發(fā)時(shí)間,而編寫的一門編程語言。
Python崇尚優(yōu)雅、明確、簡(jiǎn)單,是一門優(yōu)秀,并被廣泛使用的編程語言。之所以選中Python(大蟒蛇的意思)作為該編程語言的名字,是因?yàn)樗且粋€(gè)叫Monty Python的喜劇團(tuán)體的愛好者。
近年來,隨著大數(shù)據(jù)和人工智能技術(shù)的發(fā)展,Python爆發(fā)出蓬勃的生命力,受到了越來越多的歡迎和重視。小到自動(dòng)化腳本輔助日常工作,中到數(shù)據(jù)統(tǒng)計(jì)分析與可視化,大到深度學(xué)習(xí)、系統(tǒng)運(yùn)維,無論是對(duì)理工科,還是文科生,Python都是一把不可多得的利器,非常值得學(xué)習(xí)和使用。
最新的TIOBE編程語言排行榜,Python今年的排名超過了去年,獲得了第三名的好成績(jī)。由圖可見,Python的流行度呈上升趨勢(shì),反映出Python應(yīng)用越來越廣泛并且也逐漸得到業(yè)內(nèi)的認(rèn)可!
Python的應(yīng)用
Python可以應(yīng)用于眾多領(lǐng)域,如:數(shù)據(jù)分析、組件集成、網(wǎng)絡(luò)服務(wù)、圖像處理、數(shù)值計(jì)算和科學(xué)計(jì)算等眾多領(lǐng)域。目前業(yè)內(nèi)幾乎所有大中型互聯(lián)網(wǎng)企業(yè)都在使用Python,來幾個(gè)鮮活的應(yīng)用案例,給大家一個(gè)直觀的印象:
谷歌:在Google App Engine、Google earth、網(wǎng)絡(luò)爬蟲等項(xiàng)目大量使用了Python;NASA:美國航天局(NASA)大量使用Python進(jìn)行數(shù)據(jù)分析和運(yùn)算;眾多大型網(wǎng)站:Youtube,Dropbox,F(xiàn)acebook,豆瓣,知乎等大量基礎(chǔ)庫和功能通過Python開發(fā);Redhat:yum包管理工具基于Python開發(fā);深度學(xué)習(xí)方面:TensorFlow、PyTorch、Keras等著名的深度學(xué)習(xí)庫都是基于Python;GitHub:在全球最大的代碼托管平臺(tái)和開發(fā)者社區(qū)GitHub網(wǎng)站,編程語言熱度Python長(zhǎng)期排在前三;
Python的優(yōu)缺點(diǎn)
Python語言具有如下多方面的優(yōu)點(diǎn):
“優(yōu)雅”、“明確”、“簡(jiǎn)單”
引用一個(gè)說法,Python的哲學(xué)是就是簡(jiǎn)單優(yōu)雅,盡量寫容易看明白的代碼,盡量寫少的代碼。如此定位,使得Python對(duì)編程新手十分友好,初學(xué)者容易入門,學(xué)習(xí)成本更低。
功能強(qiáng)大
Python作為一種高級(jí)語言,具有豐富的第三方庫,覆蓋了數(shù)值計(jì)算(numpy)、科學(xué)繪圖(matplotlib)、Web開發(fā)、網(wǎng)絡(luò)爬蟲、應(yīng)用程序界面GUI、數(shù)據(jù)庫等大量?jī)?nèi)容。你能想到的幾乎所有工作都可以用Python實(shí)現(xiàn)。
開發(fā)效率高
由于Python社區(qū)提供大量功能各異的庫,因此開發(fā)者無需事必躬親,遇到主流的功能需求時(shí)可以直接調(diào)用,在基礎(chǔ)庫的基礎(chǔ)上施展拳腳,可以節(jié)省你很多功力和時(shí)間成本,大大降低開發(fā)周期。同樣的功能,C語言要花1天寫1000行代碼,而Python可能只需1-2個(gè)小時(shí)寫20行就可以搞定。
無需關(guān)注底層細(xì)節(jié)
Python作為一種高級(jí)開發(fā)語言,在編程時(shí)無需關(guān)注底層細(xì)節(jié)(如內(nèi)存管理等)。
可移植性
Python可以在多種主流的平臺(tái)(Windows、Linux、Mac)上運(yùn)行,大部分情況下無需考慮所用功能的平臺(tái)依賴性,代碼在無需修改的前提下運(yùn)行在多種系統(tǒng)平臺(tái)上。
一個(gè)硬幣總有兩面,Python有缺點(diǎn)嗎?答案是肯定的,總結(jié)如下:
運(yùn)行速度慢
因?yàn)镻ython是一種高級(jí)開發(fā)語言,不像C語言一樣可以深入底層硬件最大程度上挖掘榨取硬件的性能。另一方面,Python是解釋型語言,代碼在執(zhí)行時(shí)會(huì)一行一行地翻譯成CPU能理解的機(jī)器碼。而C程序是運(yùn)行前直接編譯成CPU能執(zhí)行的機(jī)器碼。因此它的運(yùn)行速度要慢于C語言。
但需要注意的是,這種慢對(duì)于不需要追求硬件高性能的應(yīng)用場(chǎng)合來講根本不是問題,因?yàn)樗鼈儽容^的數(shù)量級(jí)根本不是用戶能直觀感受到的!例如開發(fā)一個(gè)下載MP3的網(wǎng)絡(luò)應(yīng)用程序,C程序的運(yùn)行時(shí)間需要0.001秒,而Python程序的運(yùn)行時(shí)間需要0.05秒,慢了50倍,但由于網(wǎng)絡(luò)更慢,需要等待1秒,用戶體驗(yàn)幾乎沒有差別。此外,Python的高開發(fā)效率極大地彌補(bǔ)了運(yùn)行速度慢的弱點(diǎn)。
不能加密
Python的開源性質(zhì),既是優(yōu)點(diǎn)又是缺點(diǎn)。Python沒有編譯打包的過程,發(fā)布程序時(shí)我們必須公開源代碼!這個(gè)缺點(diǎn)僅限于你想單純靠賣開發(fā)出來的軟件產(chǎn)品掙錢的時(shí)候。但在這個(gè)開發(fā)互聯(lián)的時(shí)代,不靠賣產(chǎn)品本身來賺錢的商業(yè)模式越來越主流了,所以這也不是根本問題。
Python與其他編程語言對(duì)比
C 和 Python、Java、C#等
C語言:代碼編譯得到 機(jī)器碼 ,機(jī)器碼在處理器上直接執(zhí)行,每一條指令控制CPU工作
其他語言:代碼編譯得到 字節(jié)碼 ,虛擬機(jī)執(zhí)行字節(jié)碼并轉(zhuǎn)換成機(jī)器碼再后在處理器上執(zhí)行
Python 和 C Python這門語言是由C開發(fā)而來
對(duì)于使用:Python的類庫齊全并且使用簡(jiǎn)潔,如果要實(shí)現(xiàn)同樣的功能,Python 10行代碼可以解決,C可能就需要100行甚至更多。
對(duì)于速度:Python的運(yùn)行速度相較與C,絕逼是慢了
Python 和 Java、C#等
對(duì)于使用:Linux原裝Python,其他語言沒有;以上幾門語言都有非常豐富的類庫支持
對(duì)于速度:Python在速度上可能稍顯遜色
所以,Python和其他語言沒有什么本質(zhì)區(qū)別,其他區(qū)別在于:擅長(zhǎng)某領(lǐng)域、人才豐富、先入為主。