Python是什么?Python入門必看的啟蒙之文

人生苦短,我學(xué)Python。

很經(jīng)典的一句話,不知道你們有沒(méi)有聽(tīng)過(guò),可能有的朋友剛來(lái),連Python是什么都不清楚,至于為什么想要學(xué)它,理由無(wú)非是以下幾個(gè),做爬蟲(chóng),建網(wǎng)站,自動(dòng)化辦公,數(shù)據(jù)分析,從而解決某些效率上的具體問(wèn)題。

它確實(shí)具備這樣的功能,也因?yàn)檫m用性廣,宜用宜學(xué),成為了多數(shù)人入門編程的首要選擇,不少教育機(jī)構(gòu)嗅到了這個(gè)商機(jī),開(kāi)始大力宣傳Python,營(yíng)造了一股全民皆可學(xué)Python的熱潮,上到八十歲老人,下到三五歲的小孩都可以學(xué),先不論這個(gè)做法對(duì)不對(duì),但是。

你可能就是在這樣的機(jī)緣巧合下接觸到了Python,對(duì)它產(chǎn)生了好奇,不得不說(shuō),大范圍的宣傳讓Python走進(jìn)了大眾的視野,讓更多的人知道,編程不止有C語(yǔ)言,還有Python。

市面上少有全面介紹Python的文章,大多是泛泛而談,點(diǎn)到為止,這種做法反而為它增添了幾分神秘色彩。今天,我們就來(lái)一步步揭開(kāi)它的神秘面紗,從過(guò)去和現(xiàn)在兩個(gè)時(shí)間維度進(jìn)行解讀,來(lái)幫助大家更好地理解Python,學(xué)習(xí)Python。


過(guò)去

你敢相信,Python竟然是為了打發(fā)時(shí)間而被設(shè)計(jì)出來(lái)的嗎?1989年,Python作者Guido von Rossum(龜叔)希望設(shè)計(jì)出一種介于C和shell之間,功能全面,易學(xué)易用,可拓展的語(yǔ)言。

是什么樣的理由,讓龜叔想要設(shè)計(jì)一款如此自然的語(yǔ)言呢?

要知道當(dāng)時(shí),蘋果和IBM已經(jīng)掀起了個(gè)人電腦浪潮,但這些電腦配置低得可怕,早期的Macintosh(蘋果的Mac)只有8Mhz的CPU主頻和128KB的運(yùn)行內(nèi)存。

對(duì)比起今天動(dòng)輒2Ghz的CPU主頻,16GB的運(yùn)行內(nèi)存,真的是小巫見(jiàn)大巫。

迫于無(wú)奈,當(dāng)時(shí)的程序員都得像計(jì)算機(jī)一樣思考,以便寫出更符合計(jì)算機(jī)口味的程序。這種思考方式讓龜叔很是無(wú)奈,他知道如何用C語(yǔ)言寫出一個(gè)功能,但這個(gè)編寫過(guò)程太復(fù)雜,需要耗費(fèi)大量的時(shí)間。

更多的時(shí)候,他選擇用Shell,C語(yǔ)言下上百行的程序,在Shell只用幾行就能解決,遺憾的是,Shell并不是真正的編程語(yǔ)言,它本質(zhì)是調(diào)用命令,沒(méi)有數(shù)值型的數(shù)據(jù)類型,連加減乘除都很難實(shí)現(xiàn)。

龜叔希望有一種語(yǔ)言,能夠像C語(yǔ)言一樣,全面調(diào)用計(jì)算機(jī)的功能接口,又可以像Shell一般,幾行代碼就能輕松的實(shí)現(xiàn)編程。

當(dāng)時(shí)的他有幸參與到ABC語(yǔ)言的開(kāi)發(fā),這讓他看到了希望,因?yàn)锳BC語(yǔ)言的目標(biāo)就是為了激發(fā)人們學(xué)習(xí)編程的興趣,讓編程語(yǔ)言變得容易閱讀,容易使用,容易記憶,容易學(xué)習(xí)。我們來(lái)看一段來(lái)自維基百科的ABC程序,這個(gè)程序用以統(tǒng)計(jì)文本中出現(xiàn)的詞(Word)的總數(shù):

HOW TO RETURN words document:

?? ?PUT {} IN collection

?? ?FOR line IN document:

?? ??? ?FOR word IN split line:

?? ??? ??? ?IF word not.in collection:

?? ??? ??? ??? ?INSERT word IN collection

?? ?RETURN collection

可以清楚地看到,ABC語(yǔ)言已經(jīng)非常接近自然文字了,就像我們平時(shí)說(shuō)英語(yǔ)那般。

一個(gè)程序員是很容易理解這段程序的,小白也沒(méi)關(guān)系,我?guī)е銈冝垡幌隆?/p>

HOW TO用于定義一個(gè)函數(shù),這段函數(shù)中的冒號(hào):和縮進(jìn)來(lái)表示一個(gè)程序塊,也就是構(gòu)成程序的其中一部分,for和if的結(jié)構(gòu)中也沒(méi)有(),如果將HOW TO換成def,將PUT那一行改為collection=[],將INSERT那一行改為collection.append(word),這就幾乎是一個(gè)標(biāo)準(zhǔn)的Python函數(shù)了。

遺憾的是,這種接近自然文字的語(yǔ)言在當(dāng)時(shí)還是沒(méi)能流行起來(lái),因?yàn)樗囊筇吡?,需要配置較高的電腦才能運(yùn)行,而這些電腦的使用者通常精通計(jì)算機(jī),他們需要思考的點(diǎn)不在于語(yǔ)言的學(xué)習(xí)難度,而在于程序的使用效率。

除此之外,ABC語(yǔ)言還存在著一些致命問(wèn)題,可拓展性差,傳播困難,不能直接操作文件系統(tǒng),還有大多數(shù)程序員都不太能接受這種新的編寫方式,讓它在萌芽期就直接腰斬。

基于此前已經(jīng)有設(shè)計(jì)ABC語(yǔ)言的經(jīng)驗(yàn),雖然不是很成功,但龜叔還是進(jìn)行了一次嘗試。這一次,也是再普通不過(guò)的hacking行為。

借著圣誕假期,他開(kāi)始寫Python語(yǔ)言的編譯器/解釋器,之所以選中Python(大蟒蛇)作為該編程語(yǔ)言的名字,是取自于Guido最愛(ài)的電視喜劇《蒙提·派森的飛行馬戲團(tuán)》(Monty Python's Flying Circus)。

功夫不負(fù)有心人,歷經(jīng)兩年時(shí)間,于1991年,Python正式誕生,它是用C語(yǔ)言實(shí)現(xiàn)的,并能調(diào)用C語(yǔ)言的庫(kù)文件。

Python語(yǔ)言誕生后,處境還是比較尷尬的,一直處于不慍不火的狀態(tài),前有C語(yǔ)言大哥,后有Java這個(gè)當(dāng)紅達(dá)人。

1990年還是個(gè)人電腦的時(shí)代,盡管Internet為主體的信息革命還有十年才到來(lái),但當(dāng)時(shí)多數(shù)程序員與資深計(jì)算機(jī)用戶已經(jīng)在頻繁使用Internet進(jìn)行交流(包括email和newsgroup),一種新的軟件開(kāi)發(fā)模式悄然流行起來(lái):開(kāi)源。程序員可以利用業(yè)余時(shí)間進(jìn)行軟件開(kāi)發(fā),并開(kāi)放源代碼。

只要硬件性能不受限制,Python就有了用武之地,隨后,龜叔維護(hù)了一個(gè)maillist,Python用戶就可以利用郵件進(jìn)行交流,而Python的用戶背景各不相同,需求也不同,Python本身開(kāi)放且容易拓展,這一下就把Python給帶火了起來(lái)。


現(xiàn)在

Python在編程界的熱度,再創(chuàng)歷史新高,它不僅贏得了年度TIOBE編程語(yǔ)言獎(jiǎng),還被授予這一年“最受歡迎的編程語(yǔ)言”。


我們?cè)賮?lái)看看TOP10編程語(yǔ)言在這十幾年的指數(shù)走勢(shì)(?2002-2020?)


如今,它已成為數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)等領(lǐng)域中最受歡迎的語(yǔ)言,但它也用于Web開(kāi)發(fā)和后端編程,并逐漸發(fā)展到移動(dòng)應(yīng)用程序領(lǐng)域,甚至在更大的嵌入式系統(tǒng)中也是如此。

大量采用這種語(yǔ)言的主要原因是易于學(xué)習(xí)語(yǔ)言及其高生產(chǎn)率。在一個(gè)渴望在各個(gè)領(lǐng)域擁有更多開(kāi)發(fā)人員的世界中,這兩種素質(zhì)至關(guān)重要。

據(jù)統(tǒng)計(jì),Python人才需求量每日高達(dá)5000+,但目前市場(chǎng)上會(huì) Python的程序員少之又少,競(jìng)爭(zhēng)小,很容易快速高薪就業(yè)。從Python開(kāi)發(fā)者薪資的變化趨勢(shì)來(lái)看,目前Python正處于行業(yè)爆發(fā)初期的風(fēng)口上。

從Python開(kāi)發(fā)者薪資的變化趨勢(shì)來(lái)看,隨著工作年限的增長(zhǎng)工資成直線增長(zhǎng)。從事Python開(kāi)發(fā),所從事的工作機(jī)會(huì)和工作崗位及工作內(nèi)容可選擇的余地很多,可從事大數(shù)據(jù)、數(shù)據(jù)分析師、人工智能工程師等方向,未來(lái)發(fā)展的空間大。

Python在數(shù)據(jù)分析、數(shù)據(jù)挖掘、人工智能、web開(kāi)發(fā)等方面都大有發(fā)揮之處,再加上人工智能大量依賴數(shù)據(jù),數(shù)據(jù)相關(guān)崗位人才的稀缺,Python現(xiàn)在的職位可謂是炙手可熱。

智聯(lián)招聘在2017年發(fā)布的《人工智能就業(yè)市場(chǎng)供需與發(fā)展報(bào)告》稱,人工智能人才需求量增長(zhǎng)2倍,近七成AI人才的薪資水平在月薪1萬(wàn)以上,約有1%的人才月薪在5萬(wàn)元以上。

Python工程師的薪資高,并不僅僅因?yàn)樗麄儠?huì)Python這么簡(jiǎn)單,而是他們具備的工作能力,在互聯(lián)網(wǎng)人才流動(dòng)中,自學(xué)能力強(qiáng)、技術(shù)敏銳度的程序員基本都會(huì)有好的發(fā)展,獲得豐厚的回報(bào)。

最后我還要說(shuō)幾句,不管Python未來(lái)的命運(yùn)如何,它的歷史本身就極其有趣,以現(xiàn)在的發(fā)展勢(shì)頭,它值得我們學(xué)習(xí),值得我們?nèi)ド钊肓私馑脑O(shè)計(jì)理念,以便更好地入門Python,走上Python的學(xué)習(xí)之路。

原文鏈接點(diǎn)這里~Python的過(guò)去和現(xiàn)在

歡迎你關(guān)注我的公主號(hào)《Python小白集訓(xùn)營(yíng)》,每日更新零基礎(chǔ)小白入門Python的教程和實(shí)操,回復(fù)關(guān)鍵詞還能獲得Python學(xué)習(xí)大禮包哦~

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

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

  • 上一篇:Python入門之MySQL優(yōu)化 Python翻譯成漢語(yǔ)是蟒蛇的意思,并且Python的logo也是兩條纏...
    Python女匠閱讀 244評(píng)論 0 0
  • 零、學(xué)習(xí)資源總結(jié) 0.0 文檔 官方文檔:Python Documentation 第三方文檔/Wiki類:tut...
    qhyloverain閱讀 395評(píng)論 0 1
  • python, 是一種面向?qū)ο蟮慕忉屝陀?jì)算機(jī)程序設(shè)計(jì)語(yǔ)言。由荷蘭人 吉多·范羅蘇姆 (Guido van Ros...
    瞎折騰o閱讀 238評(píng)論 0 1
  • 推薦指數(shù): 6.0 書(shū)籍主旨關(guān)鍵詞:特權(quán)、焦點(diǎn)、注意力、語(yǔ)言聯(lián)想、情景聯(lián)想 觀點(diǎn): 1.統(tǒng)計(jì)學(xué)現(xiàn)在叫數(shù)據(jù)分析,社會(huì)...
    Jenaral閱讀 6,037評(píng)論 0 5
  • 昨天,在回家的路上,坐在車?yán)镉圃沼圃盏乜粗摹度龉衬墓适隆?,我被里面的?nèi)容深深吸引住了,盡管上學(xué)時(shí)...
    夜闌曉語(yǔ)閱讀 3,958評(píng)論 2 9

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