狠狠操夜夜甜|人妻在线中文字幕亚洲无码不卡av|一区二区欧美亚洲|日躁夜躁狠狠躁2001|亚洲,超碰,欧美|18AV成人电影|午夜成人免费在线|婷婷激情网深爱五月|色欲综合成人在线|在线美女搞黄大片

中企動(dòng)力 > 頭條 > pythonpython怎么樣

網(wǎng)站性能檢測(cè)評(píng)分

注:本網(wǎng)站頁(yè)面html檢測(cè)工具掃描網(wǎng)站中存在的基本問(wèn)題,僅供參考。

pythonpython怎么樣

怎么現(xiàn)在這么多人都開始學(xué)python了? 營(yíng)銷視頻課程

img

侯曉筠

關(guān)注

最近幾年P(guān)ython編程語(yǔ)言在國(guó)內(nèi)引起不小的轟動(dòng),有超越JAVA之勢(shì),本來(lái)在美國(guó)這個(gè)編程語(yǔ)言就是最火的,應(yīng)用的非常非常的廣泛,而Python的整體語(yǔ)言難度來(lái)講又比JAVA簡(jiǎn)單的很多。尤其在運(yùn)維的應(yīng)用中非常的廣泛,所以之前出了一句話,在如今的時(shí)代,運(yùn)維不學(xué)Python,遲早會(huì)被淘汰,本來(lái)我一個(gè)朋友做JAVA十年開發(fā),現(xiàn)在對(duì)這個(gè)編程語(yǔ)言非常的看好,在未來(lái)的人工智能中,Python語(yǔ)言依舊可以發(fā)揮相當(dāng)大的作用,人工智能的時(shí)代不出十年一定可以到達(dá)。

現(xiàn)在的Python語(yǔ)言就相當(dāng)于之前的安卓和IOS,當(dāng)時(shí)第一批學(xué)習(xí)IOS和安卓的人,現(xiàn)在應(yīng)該都身價(jià)幾百萬(wàn)了吧,但是現(xiàn)在學(xué)習(xí)安卓和IOS的人沒(méi)有幾年的工作經(jīng)驗(yàn)連個(gè)面試機(jī)會(huì)都沒(méi)有,而在國(guó)內(nèi)Python幾乎沒(méi)有任何競(jìng)爭(zhēng),所以我個(gè)人認(rèn)為這就是一個(gè)機(jī)會(huì)?,F(xiàn)在在各個(gè)論壇,關(guān)注最多的也就是Python,但是學(xué)習(xí)的人并不是很多,基本找不到可以學(xué)習(xí)Python的地方,連培訓(xùn)都很少見,最常見的還是前端和JAVA。

1、輕松入門

Python本身是一門簡(jiǎn)明、易學(xué)的語(yǔ)言,比起 C語(yǔ)言、 C++、JAVA等編程語(yǔ)言的學(xué)習(xí)難度要相對(duì)容易很多。

2 、發(fā)展空間大

從事Python開發(fā),所從事的工作機(jī)會(huì)和工作崗位及工作內(nèi)容可選擇的余地很多,未來(lái)發(fā)展的空間也很大。

3、人才需求量大

據(jù)統(tǒng)計(jì),Python人才需求量每日高達(dá)5000+,但目前市場(chǎng)上會(huì) Python 的程序員少之又少, 競(jìng)爭(zhēng)小,很容易快速高薪就業(yè)

4、行業(yè)前景好

從Python開發(fā)者薪資的變化趨勢(shì)來(lái)看,隨著工作年限的增長(zhǎng)工資成直線增長(zhǎng)。

C和Python,初學(xué)者應(yīng)該如何選擇 企業(yè)視頻課程

img

單莫英

關(guān)注

對(duì)于C和Python兩種語(yǔ)言,初學(xué)者應(yīng)該選擇從那個(gè)開始入門?筆者認(rèn)為在做出選擇之前首先要對(duì)這兩種語(yǔ)言有一個(gè)初步的了解。首先來(lái)說(shuō),C語(yǔ)言是一門通用的編程語(yǔ)言。之所以稱其通用,是因?yàn)樗軌蜃龊芏嗟图?jí)、底層的處理;同時(shí)它也有良好的跨平臺(tái)性,C語(yǔ)言可以按照一定的標(biāo)準(zhǔn)在多種計(jì)算機(jī)平臺(tái)上進(jìn)行編譯,包括嵌入式編程。而Python是一門面向?qū)ο蟮木幊陶Z(yǔ)言,這是它和C存在的一大區(qū)別;另一個(gè)區(qū)別是Python是一種解釋型語(yǔ)言。在人們寫好這種語(yǔ)言之后還需要有解釋器進(jìn)行翻譯才可以在計(jì)算機(jī)上運(yùn)行。但Python雖然從運(yùn)行效率上與C語(yǔ)言相比較低,但Python有豐富的庫(kù),而且這些庫(kù)很多是用C和C++寫的。這就使得Python與C有一定的相通性,而且和C語(yǔ)言相比,Python的專長(zhǎng)在于數(shù)據(jù)統(tǒng)計(jì)分析和人工智能編程。

總結(jié)一點(diǎn),C更基礎(chǔ),Python更實(shí)用。

如果今后的研究方向是嵌入式,那么C語(yǔ)言可以作為主攻方向。對(duì)于從事編程工作的朋友其實(shí)可以多了解幾門語(yǔ)言,這樣可以讓自己的視野更加開闊。學(xué)Python主要是因?yàn)樗軌蚩焖俣?jiǎn)潔地開發(fā)一些程序,易學(xué)易懂。但筆者認(rèn)為如果想要在程序開發(fā)行業(yè)做得更久,有良好的C語(yǔ)言基礎(chǔ)是不可缺少的。尚學(xué)堂陳老師指出,因?yàn)檎嬲龈咝阅芫幊? 不可能將機(jī)器的體系架構(gòu)拋到腦后讓Python虛擬機(jī)(或Java虛擬機(jī)等)幫你搞定所有底層。越來(lái)越多的CPU core,越來(lái)越恐怖的內(nèi)存性能瓶頸,對(duì)于上層開發(fā)人員來(lái)說(shuō),無(wú)所謂,但是對(duì)高性能程序開發(fā)人員來(lái)說(shuō),這些是無(wú)法透明的。很多應(yīng)用,還是自己掌控比較有效。這些場(chǎng)合中,匯編和C還是不可替代的。但是,光知道C是不夠的,掌握一門面向?qū)ο笳Z(yǔ)言,相對(duì)更高層的語(yǔ)言,不僅對(duì)以后的個(gè)人發(fā)展有利,也會(huì)對(duì)自己的技術(shù)認(rèn)識(shí)產(chǎn)生幫助。

C的學(xué)習(xí)曲線更陡,貌似簡(jiǎn)單,其實(shí)難點(diǎn)也非常多,看上去較為簡(jiǎn)單的程序,也不是在短時(shí)間內(nèi)可以掌握的。若要談到底層優(yōu)化,需要的功底是按年算的。但是一旦你C語(yǔ)言的基礎(chǔ)打好了,對(duì)計(jì)算機(jī)的理解,對(duì)其他語(yǔ)言的理解都是大有幫助的。比如,如果你有C基礎(chǔ),可以說(shuō),在較短的時(shí)間內(nèi)解除Python,就能寫的出來(lái)一些不短的程序。后面的優(yōu)化也算不上是難度太大的算法,都是非?;镜恼Z(yǔ)句換來(lái)?yè)Q去。在實(shí)際應(yīng)用層面,Python比C方便的不是一個(gè)層次。

說(shuō)起兩者的不同可以在對(duì)象機(jī)制上加以比較:對(duì)于“動(dòng)態(tài)確定變量類型”的理解,需要提到的是Python的Object對(duì)象機(jī)制。Objects即為“對(duì)象”是Python對(duì)于數(shù)據(jù)的抽象,用對(duì)象或者對(duì)象之間的關(guān)系可以表示Python中所有的數(shù)據(jù),函數(shù)、字符串等等都可以是對(duì)象。關(guān)于對(duì)象有三種屬性:實(shí)體,類型和值。實(shí)體一旦創(chuàng)建就不會(huì)被改變,一般而言,決定對(duì)象所支持的操作方式的類型(type,包括number,string,tuple及其他)也不會(huì)改變,但它的值可以改變。如果要找一個(gè)具體點(diǎn)的說(shuō)明,實(shí)體就相當(dāng)于對(duì)象在內(nèi)存中的地址,是本質(zhì)存在。而類型和值都只是實(shí)體的外在呈現(xiàn)。Python提供了一些接口與對(duì)象進(jìn)行交互,比如id()函數(shù)用來(lái)獲得對(duì)象實(shí)體的整形,type()函數(shù)獲取其類型等等。

這種object機(jī)制,是C所不具備的,這也是Python的優(yōu)勢(shì)所在,c是一種靜態(tài)類型語(yǔ)言,我們可以定義int a, char b等等,但必須是在源代碼里面事先規(guī)定。比如我們可以在Python里面任意一處直接規(guī)定a = “l(fā)k”,這樣,a的類型就是string,這是在其賦值的時(shí)候才決定的,我們無(wú)須在代碼中明確寫出。

C和Python,初學(xué)者應(yīng)該如何選擇?在以上內(nèi)容中筆者舉了一些簡(jiǎn)單的例子,尤其是關(guān)于Object對(duì)象機(jī)制是Python與C最大的不同之處,除此之外還有Python的庫(kù)的強(qiáng)大與豐富,也使得用Python做一般的程序開發(fā)更加方便。

Python新手用42行代碼,帶一波令人窒息的操作!我都撐不住了! 新手視頻課程

img

斷天

關(guān)注

在此文中,我將給我們演示怎樣像一個(gè)通用核算器一樣解析并核算一個(gè)四則運(yùn)算表達(dá)式。最終,我們會(huì)得到一個(gè)能夠處理比如 1+2*-(-3+2)/5.6+3款式的表達(dá)式的核算器。當(dāng)然,靈活運(yùn)用的你也能夠?qū)⑺貙挼母鼜?qiáng)壯!

我原意是想供給一個(gè)簡(jiǎn)略風(fēng)趣的課程來(lái)講解 語(yǔ)法分析 和 正規(guī)語(yǔ)法就是說(shuō)編譯原理內(nèi)容。同時(shí),介紹 PlyPlus。這是一個(gè)我改進(jìn)了好幾年的語(yǔ)法解析接口。

Python學(xué)習(xí)交流免費(fèi)資源群歡迎新手小白及其Python熱愛者324924385!到了地方要什么

作為這個(gè)課程的附加產(chǎn)品,我們最終會(huì)得到一個(gè)徹底可代替eval()的安全四則運(yùn)算器。

如果你想在自己電腦上試試此文中給的比如。

你要先裝置 PlyPlus ,運(yùn)用指令pip install plyplus 。(注:pip是一個(gè)包辦理體系,用來(lái)裝置用python寫的軟件包,具體運(yùn)用方法我們能夠百度。)

此文需對(duì)python的繼承運(yùn)用有所了解。

語(yǔ)法

關(guān)于不懂的怎么解析和正式語(yǔ)法作業(yè)的人,這里有一個(gè)快速的概覽:正式語(yǔ)法是用來(lái)解析文本的一些不同層面的規(guī)矩。每一個(gè)規(guī)矩都描繪了相對(duì)應(yīng)的那部分輸入的文本是怎么組成的!

怎么解析1+2+3+4?

舉個(gè)比如:

現(xiàn)在學(xué)Python有前途嗎?將來(lái)二十年的前景會(huì)怎么樣? 推廣視頻課程

img

傲兒

關(guān)注

互聯(lián)網(wǎng)越來(lái)越廣泛地深化到人們?nèi)兆赢?dāng)中,python編程開發(fā)言語(yǔ)行業(yè)現(xiàn)已步入了一個(gè)高速開展的年代。大家有目共睹的python編程言語(yǔ)開展及其迅猛,每年的python人才缺口人數(shù)都高達(dá)百萬(wàn)以上;現(xiàn)在工作環(huán)境競(jìng)賽十分激烈,學(xué)會(huì)Python之后能夠找到什么樣的工作,學(xué)python有前途嗎?

Python初學(xué)者有什么不懂的可以私信我——我剛整理了一套2018最新的0基礎(chǔ)入門和進(jìn)階教程,無(wú)私分享,獲取方法:關(guān)注小編頭條號(hào),發(fā)私信:【學(xué)習(xí)資料】 即可獲取,內(nèi)附:開發(fā)工具和安裝包,以及系統(tǒng)學(xué)習(xí)路線圖。

下面小編剖析python工作方向:

Python言語(yǔ)還能夠?qū)懪老x,但僅僅只是爬蟲的入門罷了。通過(guò)Python入門爬蟲比較簡(jiǎn)略易學(xué),不需要在一開始把握太多太根底太底層的常識(shí)就能夠很快上手,而且很快能夠做出成果,十分合適小白一開始想做出點(diǎn)看得見的東西的成就感。假如想要往這個(gè)方向開展,Python是不錯(cuò)的入門選項(xiàng)。

Python是機(jī)器學(xué)習(xí)和AI的首要開發(fā)言語(yǔ)。作為被用于機(jī)器學(xué)習(xí)和人工智能系統(tǒng)以及各種現(xiàn)代技術(shù)的一門言語(yǔ),Python能夠十分容易地使用于剖析和組成可用的數(shù)據(jù),這也使它成為數(shù)據(jù)科學(xué)中比較流行的言語(yǔ)之一。而豐富的本機(jī)拓展也使Python的優(yōu)勢(shì)得以強(qiáng)化,更適用于機(jī)器學(xué)習(xí)、數(shù)據(jù)核算、

把握前端常識(shí),和 python三大后端結(jié)構(gòu),能夠具備獨(dú)立開發(fā)網(wǎng)站的能力,成為一名合格的web全棧開發(fā)將不在話下。全棧工程師是指能駕御各種開發(fā)工具的工程師,而Python本身就有著很強(qiáng)的全棧式綜合言語(yǔ)的特色,能夠完成后端、前端、GUI、科學(xué)運(yùn)算、網(wǎng)絡(luò)編程、大數(shù)據(jù)開發(fā)等等,把握了Python,會(huì)使你更快成為一名全棧程序員。

Python簡(jiǎn)略的言語(yǔ)結(jié)構(gòu)使用十分廣泛,我們不用學(xué)習(xí)無(wú)比困難的JAVA,Python是最好的選擇,不管上述選擇哪個(gè)方向,都是不會(huì)錯(cuò)的。學(xué)好Python,工作前途仍是很可觀的,可是一切的條件都是需要自己真的有兩把刷子。

Python在編程范疇的占有率一向處于穩(wěn)步上升之中,依據(jù)最新的數(shù)據(jù),Python排名第六。前五名分別是 Java、C、PHP、C++ 和 VB. 作為一個(gè)很年輕的言語(yǔ),Python的位置已經(jīng)相當(dāng)令人振奮了。跟著微軟將Python歸入.Net 渠道,信任Python的將來(lái)會(huì)更加微弱開展。Python 很可能會(huì)成為.Net渠道快速開發(fā)的干流言語(yǔ)。我信任Python在不就之后將成為互聯(lián)網(wǎng)開展不可代替的工具。我也可以給大家講講Python的一個(gè)大概的應(yīng)用范圍:體系編程,提lass=innerlink>API,能方便進(jìn)行體系維護(hù)和管理。

Python那些事——且看python是如何一步一步走向神壇的! 行業(yè)視頻課程

img

萬(wàn)惡

關(guān)注

誰(shuí)會(huì)成為AI 和大數(shù)據(jù)時(shí)代的第一開發(fā)語(yǔ)言?這本已是一個(gè)不需要爭(zhēng)論的問(wèn)題。如果說(shuō)三年前,Matlab、Scala、R、Java 和 Python還各有機(jī)會(huì),局面尚且不清楚,那么三年之后,趨勢(shì)已經(jīng)非常明確了,特別是 Facebook 開源了 PyTorch 之后,Python 作為 AI 時(shí)代頭牌語(yǔ)言的位置基本確立,未來(lái)的懸念僅僅是誰(shuí)能坐穩(wěn)第二把交椅。

不過(guò)聲音市場(chǎng)上還有一些雜音。最近一個(gè)有意學(xué)習(xí)數(shù)據(jù)科學(xué)的姑娘跟我說(shuō),她的一個(gè)朋友建議她從 Java 入手,因?yàn)?Hadoop 等大數(shù)據(jù)基礎(chǔ)設(shè)施是用 Java 寫的。無(wú)獨(dú)有偶,上個(gè)月 IBM developerWorks 發(fā)表的一篇個(gè)人博客(https://ibm/developerworks/community/blogs/jfp/entry/What_Language_Is_Best_For_Machine_Learning_And_Data_Science?lang=en),用職位招聘網(wǎng)站indeed 上的數(shù)據(jù)做了一個(gè)統(tǒng)計(jì)。這篇文章本身算得上是客觀公正,實(shí)事求是,但傳到國(guó)內(nèi)來(lái),就被一些評(píng)論者曲解了本意,說(shuō) Python 的優(yōu)勢(shì)地位尚未確立,鹿死誰(shuí)手尚未可知,各位學(xué)習(xí)者不可盲目跟風(fēng)啊,千萬(wàn)要多方押寶,繼續(xù)撒胡椒面不要停。

在這里我要明確表個(gè)態(tài),對(duì)于希望加入到 AI 和大數(shù)據(jù)行業(yè)的開發(fā)人員來(lái)說(shuō),把雞蛋放在 Python 這個(gè)籃子里不但是安全的,而且是必須的?;蛘邠Q個(gè)方式說(shuō),如果你將來(lái)想在這個(gè)行業(yè)混,什么都不用想,先閉著眼睛把 Python 學(xué)會(huì)了。當(dāng)然,Python不是沒(méi)有它的問(wèn)題和短處,你可以也應(yīng)該有另外一種甚至幾種語(yǔ)言與 Python 形成搭配,但是Python 將坐穩(wěn)數(shù)據(jù)分析和 AI 第一語(yǔ)言的位置,這一點(diǎn)毫無(wú)疑問(wèn)。

我甚至認(rèn)為,由于 Python 坐穩(wěn)了這個(gè)位置,由于這個(gè)行業(yè)未來(lái)需要大批的從業(yè)者,更由于Python正在迅速成為全球大中小學(xué)編程入門課程的首選教學(xué)語(yǔ)言,這種開源動(dòng)態(tài)腳本語(yǔ)言非常有機(jī)會(huì)在不久的將來(lái)成為第一種真正意義上的編程世界語(yǔ)。

討論編程語(yǔ)言的優(yōu)劣興衰一直被認(rèn)為是一個(gè)口水戰(zhàn)話題,被資深人士所不屑。但是我認(rèn)為這次 Python 的上位是一件大事。請(qǐng)?jiān)O(shè)想一下,如果十五年之后,所有40歲以下的知識(shí)工作者,無(wú)分中外,從醫(yī)生到建筑工程師,從辦公室秘書到電影導(dǎo)演,從作曲家到銷售,都能使用同一種編程語(yǔ)言進(jìn)行基本的數(shù)據(jù)處理,調(diào)用云上的人工智能 API,操縱智能機(jī)器人,進(jìn)而相互溝通想法,那么這一普遍編程的協(xié)作網(wǎng)絡(luò),其意義將遠(yuǎn)遠(yuǎn)超越任何編程語(yǔ)言之爭(zhēng)。目前看來(lái),Python 最有希望擔(dān)任這個(gè)角色。

Python 的勝出令人意外,因?yàn)樗秉c(diǎn)很明顯。

它語(yǔ)法上自成一派,讓很多老手感到不習(xí)慣。

“裸” Python 的速度很慢,在不同的任務(wù)上比C 語(yǔ)言大約慢數(shù)十倍到數(shù)千倍不等。

由于全局解釋器鎖(GIL)的限制,單個(gè)Python 程序無(wú)法在多核上并發(fā)執(zhí)行;Python 2 和 Python 3 兩個(gè)版本長(zhǎng)期并行,很多模塊需要同時(shí)維護(hù)兩個(gè)不同的版本,給開發(fā)者選擇帶來(lái)了很多不必要的混亂和麻煩。

由于不受任何一家公司的控制,一直以來(lái)也沒(méi)有一個(gè)技術(shù)巨頭肯死挺 Python ,所以相對(duì)于 Python 的應(yīng)用之廣泛,其核心基礎(chǔ)設(shè)施所得到的投入和支持其實(shí)是非常薄弱的。直到今天,26歲的Python 都還沒(méi)有一個(gè)官方標(biāo)配的 JIT 編譯器,相比之下, Java 語(yǔ)言在其發(fā)布之后頭三年內(nèi)就獲得了標(biāo)配 JIT 。

另一個(gè)事情更能夠說(shuō)明問(wèn)題。Python 的 GIL 核心代碼 1992 年由該語(yǔ)言創(chuàng)造者 Guido van Rossum 編寫,此后十八年時(shí)間沒(méi)有一個(gè)人對(duì)這段至關(guān)重要的代碼改動(dòng)過(guò)一個(gè)字節(jié)。十八年!直到2010年,Antoine Pitrou才對(duì) GIL 進(jìn)行了近二十年來(lái)的第一次改進(jìn),而且還僅在 Python 3.x 版本中使用。這也就是說(shuō),今天使用 Python 2.7 的大多數(shù)開發(fā)者,他們所寫的每一段程序仍然被26年前的一段代碼牢牢制約著。

說(shuō)到 Python 的不足,我就想起發(fā)生在自己身上的一段小小的軼事。我多年前曾經(jīng)在一篇文章里聲明自己看好 Python,而不看好 Ruby。大概兩年多以前,有一個(gè)網(wǎng)友在微博里找到我,對(duì)我大加責(zé)備,說(shuō)因?yàn)楫?dāng)年讀了我這篇文章,誤聽讒言,鬼迷心竅,一直專攻 Python,而始終對(duì) Ruby 敬而遠(yuǎn)之。結(jié)果他Python 固然精通,但最近一學(xué) Ruby,如此美好,如此甜蜜,喜不自勝,反過(guò)來(lái)憤然意識(shí)到,當(dāng)年完全被我誤導(dǎo)了,在最美的年華錯(cuò)過(guò)了最美的編程語(yǔ)言。我當(dāng)時(shí)沒(méi)有更多的與他爭(zhēng)辯,也不知道他今天是否已經(jīng)從Python后端、大數(shù)據(jù)分析、機(jī)器學(xué)習(xí)和 AI 工程師成功轉(zhuǎn)型為Rails快速開發(fā)高手。我只是覺(jué)得,想要真正認(rèn)識(shí)一件事物的價(jià)值,確實(shí)也不是一件容易的事情。

Python 就是這樣一個(gè)帶著各種毛病沖到第一方陣的賽車手,但即便到了幾年前,也沒(méi)有多少人相信它有機(jī)會(huì)摘取桂冠,很多人認(rèn)為 Java 的位置不可動(dòng)搖,還有人說(shuō)一切程序都將用 JavaScript重寫。但今天我們?cè)倏?,Python 已經(jīng)是數(shù)據(jù)分析和 AI的第一語(yǔ)言,網(wǎng)絡(luò)攻防的第一黑客語(yǔ)言,正在成為編程入門教學(xué)的第一語(yǔ)言,云計(jì)算系統(tǒng)管理第一語(yǔ)言。Python 也早就成為Web 開發(fā)、游戲腳本、計(jì)算機(jī)視覺(jué)、物聯(lián)網(wǎng)管理和機(jī)器人開發(fā)的主流語(yǔ)言之一,隨著 Python 用戶可以預(yù)期的增長(zhǎng),它還有機(jī)會(huì)在多個(gè)領(lǐng)域里登頂。

而且不要忘了,未來(lái)絕大多數(shù)的 Python 用戶并不是專業(yè)的程序員,而是今天還在使用 Excel、PowePoint、SAS、Matlab和視頻編輯器的那些人。

就拿 AI 來(lái)說(shuō),我們首先要問(wèn)一下,AI 的主力人群在哪里?如果我們今天靜態(tài)的來(lái)談這個(gè)話題,你可能會(huì)認(rèn)為 AI 的主力是研究機(jī)構(gòu)里的 AI 科學(xué)家、擁有博士學(xué)位的機(jī)器學(xué)習(xí)專家和算法專家。

但上次我提到李開復(fù)的“AI紅利三段論”明確告訴我們,只要稍微把眼光放長(zhǎng)遠(yuǎn)一點(diǎn),往后看三至五年,你會(huì)看到整個(gè) AI 產(chǎn)業(yè)的從業(yè)人口將逐漸形成一個(gè)巨大的金字塔結(jié)構(gòu),上述的 AI 科學(xué)家僅僅是頂端的那么一點(diǎn)點(diǎn),95% 甚至更多的 AI 技術(shù)人員,都將是AI 工程師、應(yīng)用工程師和AI 工具用戶。

我相信這些人幾乎都將被Python 一網(wǎng)打盡,成為 Python 陣營(yíng)的龐大后備軍。這些潛在的 Python 用戶至今仍然在技術(shù)圈子之外,但隨著 AI 應(yīng)用的發(fā)展,數(shù)百萬(wàn)之眾的教師、公司職員、工程師、翻譯、編輯、醫(yī)生、銷售、管理者和公務(wù)員將裹挾著各自領(lǐng)域中的行業(yè)知識(shí)和數(shù)據(jù)資源,涌入 Python 和 AI 大潮之中,深刻的改變整個(gè) IT,或者說(shuō) DT (數(shù)據(jù)科技)產(chǎn)業(yè)的整體格局和面貌。

為什么 Python 能夠后來(lái)居上呢?

如果泛泛而論,我很可以列舉 Python 的一些優(yōu)點(diǎn),比如語(yǔ)言設(shè)計(jì)簡(jiǎn)潔優(yōu)雅,對(duì)程序員友好,開發(fā)效率高。但我認(rèn)為這不是根本原因,因?yàn)槠渌恍┱Z(yǔ)言在這方面表現(xiàn)得并不差。

還有人認(rèn)為 Python 的優(yōu)勢(shì)在于資源豐富,擁有堅(jiān)實(shí)的數(shù)值算法、圖標(biāo)和數(shù)據(jù)處理基礎(chǔ)設(shè)施,建立了非常良好的生態(tài)環(huán)境,吸引了大批科學(xué)家以及各領(lǐng)域的專家使用,從而把雪球越滾越大。但我覺(jué)得這是倒因?yàn)楣槭裁雌?Python 能夠吸引人們使用,建立起這么好的基礎(chǔ)設(shè)施呢?為什么世界上最好的語(yǔ)言 PHP 里頭就沒(méi)有 numpy 、NLTK、sk-learn、pandas 和 PyTorch 這樣級(jí)別的庫(kù)呢?為什么 JavaScript 極度繁榮之后就搞得各種程序庫(kù)層次不齊,一地雞毛,而 Python 的各種程序庫(kù)既繁榮又有序,能夠保持較高水準(zhǔn)呢?

我認(rèn)為最根本的原因只有一點(diǎn):Python 是眾多主流語(yǔ)言中唯一一個(gè)戰(zhàn)略定位明確,而且始終堅(jiān)持原有戰(zhàn)略定位不動(dòng)搖的語(yǔ)言。

相比之下,太多的語(yǔ)言不斷的用戰(zhàn)術(shù)上無(wú)原則的勤奮去侵蝕和模糊自己的戰(zhàn)略定位,最終只能等而下之。

Python 的戰(zhàn)略定位是什么?

其實(shí)很簡(jiǎn)單,就是要做一種簡(jiǎn)單、易用但專業(yè)、嚴(yán)謹(jǐn)?shù)耐ㄓ媒M合語(yǔ)言,或者叫膠水語(yǔ)言,讓普通人也能夠很容易的入門,把各種基本程序元件拼裝在一起,協(xié)調(diào)運(yùn)作。

正是因?yàn)閳?jiān)持這個(gè)定位,Python 始終把語(yǔ)言本身的優(yōu)美一致放在奇技妙招前面,始終把開發(fā)者效率放在CPU效率前面,始終把橫向擴(kuò)張能力放在縱向深潛能力之前。長(zhǎng)期堅(jiān)持這些戰(zhàn)略選擇,為 Python 帶來(lái)了其他語(yǔ)言望塵莫及的豐富生態(tài)。

比如說(shuō),任何一個(gè)人,只要愿意學(xué)習(xí),可以在幾天的時(shí)間里學(xué)會(huì)Python基礎(chǔ)部分,然后干很多很多事情,這種投入產(chǎn)出比可能是其他任何語(yǔ)言都無(wú)法相比的。再比如說(shuō),正是由于 Python 語(yǔ)言本身慢,所以大家在開發(fā)被頻繁使用的核心程序庫(kù)時(shí),大量使用 C 語(yǔ)言跟它配合,結(jié)果用 Python 開發(fā)的真實(shí)程序跑起來(lái)非???,因?yàn)楹苡锌赡艹^(guò) 80% 的時(shí)間系統(tǒng)執(zhí)行的代碼是 C 寫的。相反,如果 Python 不服氣,非要在速度上較勁,那么結(jié)果很可能是裸速提高個(gè)幾倍,但這樣就沒(méi)人有動(dòng)力為它開發(fā) C 模塊了,最后的速度遠(yuǎn)不如混合模式,而且很可能語(yǔ)言因此會(huì)變得更復(fù)雜,結(jié)果是一個(gè)又慢又丑陋的語(yǔ)言。

更重要的是,Python 的包裝能力、可組合性、可嵌入性都很好,可以把各種復(fù)雜性包裝在 Python 模塊里,暴露出漂亮的接口。

很多時(shí)候,一個(gè)程序庫(kù)本身是用 C/C++ 寫的,但你會(huì)發(fā)現(xiàn),直接使用 C 或者 C++ 去調(diào)用那個(gè)程序庫(kù),從環(huán)境配置到接口調(diào)用,都非常麻煩,反而隔著一層,用其python 包裝庫(kù)更加清爽整潔,又快又漂亮。這些特點(diǎn)到了 AI 領(lǐng)域中,就成了 Python 的強(qiáng)大優(yōu)勢(shì)。Python 也借助 AI 和數(shù)據(jù)科學(xué),攀爬到了編程語(yǔ)言生態(tài)鏈的頂級(jí)位置。Python 與 AI綁在一起,對(duì)它們來(lái)說(shuō),無(wú)論是電子商務(wù)、搜索引擎、社交網(wǎng)絡(luò)還是智能硬件,未來(lái)都只是生態(tài)鏈下游的數(shù)據(jù)奶牛、電子神經(jīng)和執(zhí)行工具,都將聽命于自己。

對(duì)編程語(yǔ)言發(fā)展歷史缺乏了解的人可能會(huì)覺(jué)得,Python 的戰(zhàn)略定位是犬儒主義和缺乏進(jìn)取心的。但事實(shí)證明,能同時(shí)做到簡(jiǎn)單而嚴(yán)謹(jǐn)、易用而專業(yè),是很難的,而能夠堅(jiān)守膠水語(yǔ)言的定位,更是難上加難。

有的語(yǔ)言,從一開始就是出于學(xué)術(shù)而非實(shí)用的目的,學(xué)習(xí)曲線過(guò)于陡峭,一般人很難接近。有的語(yǔ)言,過(guò)于依賴背后金主的商業(yè)支持,好的時(shí)候風(fēng)光無(wú)限,一旦被打入冷宮,連生存下去都成問(wèn)題。有的語(yǔ)言,設(shè)計(jì)的時(shí)候有明確的假想場(chǎng)景,要么是為了解決大規(guī)模并發(fā),要么是為了解決矩陣運(yùn)算,要么是為了做網(wǎng)頁(yè)渲染模板,一旦離開這個(gè)場(chǎng)景,就各種不爽。更多的語(yǔ)言,剛剛?cè)〉靡稽c(diǎn)成功,就迫不及待的想成為全能冠軍,在各個(gè)方向上拼命的伸展觸角,特別是在增強(qiáng)表達(dá)能力和提升性能方面經(jīng)常過(guò)分積極,不惜將核心語(yǔ)言改得面目全非,最后變成誰(shuí)都無(wú)法掌控的龐然大物。相比之下,Python 是現(xiàn)代編程語(yǔ)言設(shè)計(jì)和演化當(dāng)中的一個(gè)成功典范。

Python 之所以在戰(zhàn)略定位上如此清晰,戰(zhàn)略堅(jiān)持上如此堅(jiān)定,歸根結(jié)底是因?yàn)槠渖鐓^(qū)構(gòu)建了一個(gè)堪稱典范的決策和治理機(jī)制。這個(gè)機(jī)制以 Guido van Rossum (BDFL,Pythoners 都知道這是什么意思), DavidBeazley, Raymond Hettinger 等人為核心,以 PEP 為組織平臺(tái),民主而有序,集中而開明。只要這個(gè)機(jī)制本身得以維系,Python 在可見的未來(lái)里仍將一路平穩(wěn)上行。

最有可能向 Python 發(fā)起挑戰(zhàn)的,當(dāng)然是Java。Java 的用戶存量大,它本身也是一種戰(zhàn)略定位清晰而且非常堅(jiān)定的語(yǔ)言。但我并不認(rèn)為 Java 有很大的機(jī)會(huì),因?yàn)樗举|(zhì)上是為構(gòu)造大型復(fù)雜系統(tǒng)而設(shè)計(jì)的。什么是大型復(fù)雜系統(tǒng)?就是由人清清楚楚描述和構(gòu)造出來(lái)的系統(tǒng),其規(guī)模和復(fù)雜性是外生的,或者說(shuō)外界賦予的。而 AI 的本質(zhì)是一個(gè)自學(xué)習(xí)、自組織的系統(tǒng),其規(guī)模和復(fù)雜性是一個(gè)數(shù)學(xué)模型在數(shù)據(jù)的喂養(yǎng)下自己長(zhǎng)出來(lái)的,是內(nèi)生的。因此,Java大多數(shù)的語(yǔ)言結(jié)構(gòu)對(duì)于大數(shù)據(jù)的處理和 AI 系統(tǒng)的開發(fā)顯得使不上勁,你強(qiáng)的東西這里用不上,這里需要的東西你做起來(lái)又別扭。而 Python 在數(shù)據(jù)處理方面的簡(jiǎn)潔強(qiáng)悍早就盡人皆知。對(duì)比兩個(gè)功能相同的 Java 和 Python 機(jī)器學(xué)習(xí)程序,正常人只要看兩眼就能做出判斷,一定是 Python 程序更加清爽痛快。

大概在 2003 或者 2004 年的時(shí)候,我買過(guò)一本 Python 的書,作者是一位巴西人。他說(shuō)自己之所以堅(jiān)定的選擇 Python,是因?yàn)樗r(shí)候經(jīng)常夢(mèng)到未來(lái)世界將由一條大蟒蛇(蟒蛇的英文為python)統(tǒng)治。我當(dāng)時(shí)覺(jué)得這哥們好可憐,做個(gè)夢(mèng)都能夢(mèng)到這么恐怖的場(chǎng)景。但今天來(lái)看,也許他只是像黑客帝國(guó)里的程序員安德森一樣,不小心穿越到未來(lái),并且窺探到了世界的真相。

怎么現(xiàn)在這么多人都開始學(xué)python了? 推廣視頻課程

img

麥田中

關(guān)注

最近幾年P(guān)ython編程語(yǔ)言在國(guó)內(nèi)引起不小的轟動(dòng),有超越JAVA之勢(shì),本來(lái)在美國(guó)這個(gè)編程語(yǔ)言就是最火的,應(yīng)用的非常非常的廣泛,而Python的整體語(yǔ)言難度來(lái)講又比JAVA簡(jiǎn)單的很多。尤其在運(yùn)維的應(yīng)用中非常的廣泛,所以之前出了一句話,在如今的時(shí)代,運(yùn)維不學(xué)Python,遲早會(huì)被淘汰,本來(lái)我一個(gè)朋友做JAVA十年開發(fā),現(xiàn)在對(duì)這個(gè)編程語(yǔ)言非常的看好,在未來(lái)的人工智能中,Python語(yǔ)言依舊可以發(fā)揮相當(dāng)大的作用,人工智能的時(shí)代不出十年一定可以到達(dá)。

現(xiàn)在的Python語(yǔ)言就相當(dāng)于之前的安卓和IOS,當(dāng)時(shí)第一批學(xué)習(xí)IOS和安卓的人,現(xiàn)在應(yīng)該都身價(jià)幾百萬(wàn)了吧,但是現(xiàn)在學(xué)習(xí)安卓和IOS的人沒(méi)有幾年的工作經(jīng)驗(yàn)連個(gè)面試機(jī)會(huì)都沒(méi)有,而在國(guó)內(nèi)Python幾乎沒(méi)有任何競(jìng)爭(zhēng),所以我個(gè)人認(rèn)為這就是一個(gè)機(jī)會(huì)?,F(xiàn)在在各個(gè)論壇,關(guān)注最多的也就是Python,但是學(xué)習(xí)的人并不是很多,基本找不到可以學(xué)習(xí)Python的地方,連培訓(xùn)都很少見,最常見的還是前端和JAVA。

1、輕松入門

Python本身是一門簡(jiǎn)明、易學(xué)的語(yǔ)言,比起 C語(yǔ)言、 C++、JAVA等編程語(yǔ)言的學(xué)習(xí)難度要相對(duì)容易很多。

2 、發(fā)展空間大

從事Python開發(fā),所從事的工作機(jī)會(huì)和工作崗位及工作內(nèi)容可選擇的余地很多,未來(lái)發(fā)展的空間也很大。

3、人才需求量大

據(jù)統(tǒng)計(jì),Python人才需求量每日高達(dá)5000+,但目前市場(chǎng)上會(huì) Python 的程序員少之又少, 競(jìng)爭(zhēng)小,很容易快速高薪就業(yè)

4、行業(yè)前景好

從Python開發(fā)者薪資的變化趨勢(shì)來(lái)看,隨著工作年限的增長(zhǎng)工資成直線增長(zhǎng)。

Python新手用42行代碼,帶一波令人窒息的操作!我都撐不住了! 新手視頻課程

img

荀向雪

關(guān)注

在此文中,我將給我們演示怎樣像一個(gè)通用核算器一樣解析并核算一個(gè)四則運(yùn)算表達(dá)式。最終,我們會(huì)得到一個(gè)能夠處理比如 1+2*-(-3+2)/5.6+3款式的表達(dá)式的核算器。當(dāng)然,靈活運(yùn)用的你也能夠?qū)⑺貙挼母鼜?qiáng)壯!

我原意是想供給一個(gè)簡(jiǎn)略風(fēng)趣的課程來(lái)講解 語(yǔ)法分析 和 正規(guī)語(yǔ)法就是說(shuō)編譯原理內(nèi)容。同時(shí),介紹 PlyPlus。這是一個(gè)我改進(jìn)了好幾年的語(yǔ)法解析接口。

Python學(xué)習(xí)交流免費(fèi)資源群歡迎新手小白及其Python熱愛者324924385!到了地方要什么

作為這個(gè)課程的附加產(chǎn)品,我們最終會(huì)得到一個(gè)徹底可代替eval()的安全四則運(yùn)算器。

如果你想在自己電腦上試試此文中給的比如。

你要先裝置 PlyPlus ,運(yùn)用指令pip install plyplus 。(注:pip是一個(gè)包辦理體系,用來(lái)裝置用python寫的軟件包,具體運(yùn)用方法我們能夠百度。)

此文需對(duì)python的繼承運(yùn)用有所了解。

語(yǔ)法

關(guān)于不懂的怎么解析和正式語(yǔ)法作業(yè)的人,這里有一個(gè)快速的概覽:正式語(yǔ)法是用來(lái)解析文本的一些不同層面的規(guī)矩。每一個(gè)規(guī)矩都描繪了相對(duì)應(yīng)的那部分輸入的文本是怎么組成的!

怎么解析1+2+3+4?

舉個(gè)比如:

現(xiàn)在學(xué)Python有前途嗎?將來(lái)二十年的前景會(huì)怎么樣? 公司視頻課程

img

嚴(yán)白薇

關(guān)注

互聯(lián)網(wǎng)越來(lái)越廣泛地深化到人們?nèi)兆赢?dāng)中,python編程開發(fā)言語(yǔ)行業(yè)現(xiàn)已步入了一個(gè)高速開展的年代。大家有目共睹的python編程言語(yǔ)開展及其迅猛,每年的python人才缺口人數(shù)都高達(dá)百萬(wàn)以上;現(xiàn)在工作環(huán)境競(jìng)賽十分激烈,學(xué)會(huì)Python之后能夠找到什么樣的工作,學(xué)python有前途嗎?

Python初學(xué)者有什么不懂的可以私信我——我剛整理了一套2018最新的0基礎(chǔ)入門和進(jìn)階教程,無(wú)私分享,獲取方法:關(guān)注小編頭條號(hào),發(fā)私信:【學(xué)習(xí)資料】 即可獲取,內(nèi)附:開發(fā)工具和安裝包,以及系統(tǒng)學(xué)習(xí)路線圖。

下面小編剖析python工作方向:

Python言語(yǔ)還能夠?qū)懪老x,但僅僅只是爬蟲的入門罷了。通過(guò)Python入門爬蟲比較簡(jiǎn)略易學(xué),不需要在一開始把握太多太根底太底層的常識(shí)就能夠很快上手,而且很快能夠做出成果,十分合適小白一開始想做出點(diǎn)看得見的東西的成就感。假如想要往這個(gè)方向開展,Python是不錯(cuò)的入門選項(xiàng)。

Python是機(jī)器學(xué)習(xí)和AI的首要開發(fā)言語(yǔ)。作為被用于機(jī)器學(xué)習(xí)和人工智能系統(tǒng)以及各種現(xiàn)代技術(shù)的一門言語(yǔ),Python能夠十分容易地使用于剖析和組成可用的數(shù)據(jù),這也使它成為數(shù)據(jù)科學(xué)中比較流行的言語(yǔ)之一。而豐富的本機(jī)拓展也使Python的優(yōu)勢(shì)得以強(qiáng)化,更適用于機(jī)器學(xué)習(xí)、數(shù)據(jù)核算、

把握前端常識(shí),和 python三大后端結(jié)構(gòu),能夠具備獨(dú)立開發(fā)網(wǎng)站的能力,成為一名合格的web全棧開發(fā)將不在話下。全棧工程師是指能駕御各種開發(fā)工具的工程師,而Python本身就有著很強(qiáng)的全棧式綜合言語(yǔ)的特色,能夠完成后端、前端、GUI、科學(xué)運(yùn)算、網(wǎng)絡(luò)編程、大數(shù)據(jù)開發(fā)等等,把握了Python,會(huì)使你更快成為一名全棧程序員。

Python簡(jiǎn)略的言語(yǔ)結(jié)構(gòu)使用十分廣泛,我們不用學(xué)習(xí)無(wú)比困難的JAVA,Python是最好的選擇,不管上述選擇哪個(gè)方向,都是不會(huì)錯(cuò)的。學(xué)好Python,工作前途仍是很可觀的,可是一切的條件都是需要自己真的有兩把刷子。

Python在編程范疇的占有率一向處于穩(wěn)步上升之中,依據(jù)最新的數(shù)據(jù),Python排名第六。前五名分別是 Java、C、PHP、C++ 和 VB. 作為一個(gè)很年輕的言語(yǔ),Python的位置已經(jīng)相當(dāng)令人振奮了。跟著微軟將Python歸入.Net 渠道,信任Python的將來(lái)會(huì)更加微弱開展。Python 很可能會(huì)成為.Net渠道快速開發(fā)的干流言語(yǔ)。我信任Python在不就之后將成為互聯(lián)網(wǎng)開展不可代替的工具。我也可以給大家講講Python的一個(gè)大概的應(yīng)用范圍:體系編程,提lass=innerlink>API,能方便進(jìn)行體系維護(hù)和管理。

Python那些事——且看python是如何一步一步走向神壇的! 推廣視頻課程

img

Mariel

關(guān)注

誰(shuí)會(huì)成為AI 和大數(shù)據(jù)時(shí)代的第一開發(fā)語(yǔ)言?這本已是一個(gè)不需要爭(zhēng)論的問(wèn)題。如果說(shuō)三年前,Matlab、Scala、R、Java 和 Python還各有機(jī)會(huì),局面尚且不清楚,那么三年之后,趨勢(shì)已經(jīng)非常明確了,特別是 Facebook 開源了 PyTorch 之后,Python 作為 AI 時(shí)代頭牌語(yǔ)言的位置基本確立,未來(lái)的懸念僅僅是誰(shuí)能坐穩(wěn)第二把交椅。

不過(guò)聲音市場(chǎng)上還有一些雜音。最近一個(gè)有意學(xué)習(xí)數(shù)據(jù)科學(xué)的姑娘跟我說(shuō),她的一個(gè)朋友建議她從 Java 入手,因?yàn)?Hadoop 等大數(shù)據(jù)基礎(chǔ)設(shè)施是用 Java 寫的。無(wú)獨(dú)有偶,上個(gè)月 IBM developerWorks 發(fā)表的一篇個(gè)人博客(https://ibm/developerworks/community/blogs/jfp/entry/What_Language_Is_Best_For_Machine_Learning_And_Data_Science?lang=en),用職位招聘網(wǎng)站indeed 上的數(shù)據(jù)做了一個(gè)統(tǒng)計(jì)。這篇文章本身算得上是客觀公正,實(shí)事求是,但傳到國(guó)內(nèi)來(lái),就被一些評(píng)論者曲解了本意,說(shuō) Python 的優(yōu)勢(shì)地位尚未確立,鹿死誰(shuí)手尚未可知,各位學(xué)習(xí)者不可盲目跟風(fēng)啊,千萬(wàn)要多方押寶,繼續(xù)撒胡椒面不要停。

在這里我要明確表個(gè)態(tài),對(duì)于希望加入到 AI 和大數(shù)據(jù)行業(yè)的開發(fā)人員來(lái)說(shuō),把雞蛋放在 Python 這個(gè)籃子里不但是安全的,而且是必須的?;蛘邠Q個(gè)方式說(shuō),如果你將來(lái)想在這個(gè)行業(yè)混,什么都不用想,先閉著眼睛把 Python 學(xué)會(huì)了。當(dāng)然,Python不是沒(méi)有它的問(wèn)題和短處,你可以也應(yīng)該有另外一種甚至幾種語(yǔ)言與 Python 形成搭配,但是Python 將坐穩(wěn)數(shù)據(jù)分析和 AI 第一語(yǔ)言的位置,這一點(diǎn)毫無(wú)疑問(wèn)。

我甚至認(rèn)為,由于 Python 坐穩(wěn)了這個(gè)位置,由于這個(gè)行業(yè)未來(lái)需要大批的從業(yè)者,更由于Python正在迅速成為全球大中小學(xué)編程入門課程的首選教學(xué)語(yǔ)言,這種開源動(dòng)態(tài)腳本語(yǔ)言非常有機(jī)會(huì)在不久的將來(lái)成為第一種真正意義上的編程世界語(yǔ)。

討論編程語(yǔ)言的優(yōu)劣興衰一直被認(rèn)為是一個(gè)口水戰(zhàn)話題,被資深人士所不屑。但是我認(rèn)為這次 Python 的上位是一件大事。請(qǐng)?jiān)O(shè)想一下,如果十五年之后,所有40歲以下的知識(shí)工作者,無(wú)分中外,從醫(yī)生到建筑工程師,從辦公室秘書到電影導(dǎo)演,從作曲家到銷售,都能使用同一種編程語(yǔ)言進(jìn)行基本的數(shù)據(jù)處理,調(diào)用云上的人工智能 API,操縱智能機(jī)器人,進(jìn)而相互溝通想法,那么這一普遍編程的協(xié)作網(wǎng)絡(luò),其意義將遠(yuǎn)遠(yuǎn)超越任何編程語(yǔ)言之爭(zhēng)。目前看來(lái),Python 最有希望擔(dān)任這個(gè)角色。

Python 的勝出令人意外,因?yàn)樗秉c(diǎn)很明顯。

它語(yǔ)法上自成一派,讓很多老手感到不習(xí)慣。

“裸” Python 的速度很慢,在不同的任務(wù)上比C 語(yǔ)言大約慢數(shù)十倍到數(shù)千倍不等。

由于全局解釋器鎖(GIL)的限制,單個(gè)Python 程序無(wú)法在多核上并發(fā)執(zhí)行;Python 2 和 Python 3 兩個(gè)版本長(zhǎng)期并行,很多模塊需要同時(shí)維護(hù)兩個(gè)不同的版本,給開發(fā)者選擇帶來(lái)了很多不必要的混亂和麻煩。

由于不受任何一家公司的控制,一直以來(lái)也沒(méi)有一個(gè)技術(shù)巨頭肯死挺 Python ,所以相對(duì)于 Python 的應(yīng)用之廣泛,其核心基礎(chǔ)設(shè)施所得到的投入和支持其實(shí)是非常薄弱的。直到今天,26歲的Python 都還沒(méi)有一個(gè)官方標(biāo)配的 JIT 編譯器,相比之下, Java 語(yǔ)言在其發(fā)布之后頭三年內(nèi)就獲得了標(biāo)配 JIT 。

另一個(gè)事情更能夠說(shuō)明問(wèn)題。Python 的 GIL 核心代碼 1992 年由該語(yǔ)言創(chuàng)造者 Guido van Rossum 編寫,此后十八年時(shí)間沒(méi)有一個(gè)人對(duì)這段至關(guān)重要的代碼改動(dòng)過(guò)一個(gè)字節(jié)。十八年!直到2010年,Antoine Pitrou才對(duì) GIL 進(jìn)行了近二十年來(lái)的第一次改進(jìn),而且還僅在 Python 3.x 版本中使用。這也就是說(shuō),今天使用 Python 2.7 的大多數(shù)開發(fā)者,他們所寫的每一段程序仍然被26年前的一段代碼牢牢制約著。

說(shuō)到 Python 的不足,我就想起發(fā)生在自己身上的一段小小的軼事。我多年前曾經(jīng)在一篇文章里聲明自己看好 Python,而不看好 Ruby。大概兩年多以前,有一個(gè)網(wǎng)友在微博里找到我,對(duì)我大加責(zé)備,說(shuō)因?yàn)楫?dāng)年讀了我這篇文章,誤聽讒言,鬼迷心竅,一直專攻 Python,而始終對(duì) Ruby 敬而遠(yuǎn)之。結(jié)果他Python 固然精通,但最近一學(xué) Ruby,如此美好,如此甜蜜,喜不自勝,反過(guò)來(lái)憤然意識(shí)到,當(dāng)年完全被我誤導(dǎo)了,在最美的年華錯(cuò)過(guò)了最美的編程語(yǔ)言。我當(dāng)時(shí)沒(méi)有更多的與他爭(zhēng)辯,也不知道他今天是否已經(jīng)從Python后端、大數(shù)據(jù)分析、機(jī)器學(xué)習(xí)和 AI 工程師成功轉(zhuǎn)型為Rails快速開發(fā)高手。我只是覺(jué)得,想要真正認(rèn)識(shí)一件事物的價(jià)值,確實(shí)也不是一件容易的事情。

Python 就是這樣一個(gè)帶著各種毛病沖到第一方陣的賽車手,但即便到了幾年前,也沒(méi)有多少人相信它有機(jī)會(huì)摘取桂冠,很多人認(rèn)為 Java 的位置不可動(dòng)搖,還有人說(shuō)一切程序都將用 JavaScript重寫。但今天我們?cè)倏?,Python 已經(jīng)是數(shù)據(jù)分析和 AI的第一語(yǔ)言,網(wǎng)絡(luò)攻防的第一黑客語(yǔ)言,正在成為編程入門教學(xué)的第一語(yǔ)言,云計(jì)算系統(tǒng)管理第一語(yǔ)言。Python 也早就成為Web 開發(fā)、游戲腳本、計(jì)算機(jī)視覺(jué)、物聯(lián)網(wǎng)管理和機(jī)器人開發(fā)的主流語(yǔ)言之一,隨著 Python 用戶可以預(yù)期的增長(zhǎng),它還有機(jī)會(huì)在多個(gè)領(lǐng)域里登頂。

而且不要忘了,未來(lái)絕大多數(shù)的 Python 用戶并不是專業(yè)的程序員,而是今天還在使用 Excel、PowePoint、SAS、Matlab和視頻編輯器的那些人。

就拿 AI 來(lái)說(shuō),我們首先要問(wèn)一下,AI 的主力人群在哪里?如果我們今天靜態(tài)的來(lái)談這個(gè)話題,你可能會(huì)認(rèn)為 AI 的主力是研究機(jī)構(gòu)里的 AI 科學(xué)家、擁有博士學(xué)位的機(jī)器學(xué)習(xí)專家和算法專家。

但上次我提到李開復(fù)的“AI紅利三段論”明確告訴我們,只要稍微把眼光放長(zhǎng)遠(yuǎn)一點(diǎn),往后看三至五年,你會(huì)看到整個(gè) AI 產(chǎn)業(yè)的從業(yè)人口將逐漸形成一個(gè)巨大的金字塔結(jié)構(gòu),上述的 AI 科學(xué)家僅僅是頂端的那么一點(diǎn)點(diǎn),95% 甚至更多的 AI 技術(shù)人員,都將是AI 工程師、應(yīng)用工程師和AI 工具用戶。

我相信這些人幾乎都將被Python 一網(wǎng)打盡,成為 Python 陣營(yíng)的龐大后備軍。這些潛在的 Python 用戶至今仍然在技術(shù)圈子之外,但隨著 AI 應(yīng)用的發(fā)展,數(shù)百萬(wàn)之眾的教師、公司職員、工程師、翻譯、編輯、醫(yī)生、銷售、管理者和公務(wù)員將裹挾著各自領(lǐng)域中的行業(yè)知識(shí)和數(shù)據(jù)資源,涌入 Python 和 AI 大潮之中,深刻的改變整個(gè) IT,或者說(shuō) DT (數(shù)據(jù)科技)產(chǎn)業(yè)的整體格局和面貌。

為什么 Python 能夠后來(lái)居上呢?

如果泛泛而論,我很可以列舉 Python 的一些優(yōu)點(diǎn),比如語(yǔ)言設(shè)計(jì)簡(jiǎn)潔優(yōu)雅,對(duì)程序員友好,開發(fā)效率高。但我認(rèn)為這不是根本原因,因?yàn)槠渌恍┱Z(yǔ)言在這方面表現(xiàn)得并不差。

還有人認(rèn)為 Python 的優(yōu)勢(shì)在于資源豐富,擁有堅(jiān)實(shí)的數(shù)值算法、圖標(biāo)和數(shù)據(jù)處理基礎(chǔ)設(shè)施,建立了非常良好的生態(tài)環(huán)境,吸引了大批科學(xué)家以及各領(lǐng)域的專家使用,從而把雪球越滾越大。但我覺(jué)得這是倒因?yàn)楣槭裁雌?Python 能夠吸引人們使用,建立起這么好的基礎(chǔ)設(shè)施呢?為什么世界上最好的語(yǔ)言 PHP 里頭就沒(méi)有 numpy 、NLTK、sk-learn、pandas 和 PyTorch 這樣級(jí)別的庫(kù)呢?為什么 JavaScript 極度繁榮之后就搞得各種程序庫(kù)層次不齊,一地雞毛,而 Python 的各種程序庫(kù)既繁榮又有序,能夠保持較高水準(zhǔn)呢?

我認(rèn)為最根本的原因只有一點(diǎn):Python 是眾多主流語(yǔ)言中唯一一個(gè)戰(zhàn)略定位明確,而且始終堅(jiān)持原有戰(zhàn)略定位不動(dòng)搖的語(yǔ)言。

相比之下,太多的語(yǔ)言不斷的用戰(zhàn)術(shù)上無(wú)原則的勤奮去侵蝕和模糊自己的戰(zhàn)略定位,最終只能等而下之。

Python 的戰(zhàn)略定位是什么?

其實(shí)很簡(jiǎn)單,就是要做一種簡(jiǎn)單、易用但專業(yè)、嚴(yán)謹(jǐn)?shù)耐ㄓ媒M合語(yǔ)言,或者叫膠水語(yǔ)言,讓普通人也能夠很容易的入門,把各種基本程序元件拼裝在一起,協(xié)調(diào)運(yùn)作。

正是因?yàn)閳?jiān)持這個(gè)定位,Python 始終把語(yǔ)言本身的優(yōu)美一致放在奇技妙招前面,始終把開發(fā)者效率放在CPU效率前面,始終把橫向擴(kuò)張能力放在縱向深潛能力之前。長(zhǎng)期堅(jiān)持這些戰(zhàn)略選擇,為 Python 帶來(lái)了其他語(yǔ)言望塵莫及的豐富生態(tài)。

比如說(shuō),任何一個(gè)人,只要愿意學(xué)習(xí),可以在幾天的時(shí)間里學(xué)會(huì)Python基礎(chǔ)部分,然后干很多很多事情,這種投入產(chǎn)出比可能是其他任何語(yǔ)言都無(wú)法相比的。再比如說(shuō),正是由于 Python 語(yǔ)言本身慢,所以大家在開發(fā)被頻繁使用的核心程序庫(kù)時(shí),大量使用 C 語(yǔ)言跟它配合,結(jié)果用 Python 開發(fā)的真實(shí)程序跑起來(lái)非常快,因?yàn)楹苡锌赡艹^(guò) 80% 的時(shí)間系統(tǒng)執(zhí)行的代碼是 C 寫的。相反,如果 Python 不服氣,非要在速度上較勁,那么結(jié)果很可能是裸速提高個(gè)幾倍,但這樣就沒(méi)人有動(dòng)力為它開發(fā) C 模塊了,最后的速度遠(yuǎn)不如混合模式,而且很可能語(yǔ)言因此會(huì)變得更復(fù)雜,結(jié)果是一個(gè)又慢又丑陋的語(yǔ)言。

更重要的是,Python 的包裝能力、可組合性、可嵌入性都很好,可以把各種復(fù)雜性包裝在 Python 模塊里,暴露出漂亮的接口。

很多時(shí)候,一個(gè)程序庫(kù)本身是用 C/C++ 寫的,但你會(huì)發(fā)現(xiàn),直接使用 C 或者 C++ 去調(diào)用那個(gè)程序庫(kù),從環(huán)境配置到接口調(diào)用,都非常麻煩,反而隔著一層,用其python 包裝庫(kù)更加清爽整潔,又快又漂亮。這些特點(diǎn)到了 AI 領(lǐng)域中,就成了 Python 的強(qiáng)大優(yōu)勢(shì)。Python 也借助 AI 和數(shù)據(jù)科學(xué),攀爬到了編程語(yǔ)言生態(tài)鏈的頂級(jí)位置。Python 與 AI綁在一起,對(duì)它們來(lái)說(shuō),無(wú)論是電子商務(wù)、搜索引擎、社交網(wǎng)絡(luò)還是智能硬件,未來(lái)都只是生態(tài)鏈下游的數(shù)據(jù)奶牛、電子神經(jīng)和執(zhí)行工具,都將聽命于自己。

對(duì)編程語(yǔ)言發(fā)展歷史缺乏了解的人可能會(huì)覺(jué)得,Python 的戰(zhàn)略定位是犬儒主義和缺乏進(jìn)取心的。但事實(shí)證明,能同時(shí)做到簡(jiǎn)單而嚴(yán)謹(jǐn)、易用而專業(yè),是很難的,而能夠堅(jiān)守膠水語(yǔ)言的定位,更是難上加難。

有的語(yǔ)言,從一開始就是出于學(xué)術(shù)而非實(shí)用的目的,學(xué)習(xí)曲線過(guò)于陡峭,一般人很難接近。有的語(yǔ)言,過(guò)于依賴背后金主的商業(yè)支持,好的時(shí)候風(fēng)光無(wú)限,一旦被打入冷宮,連生存下去都成問(wèn)題。有的語(yǔ)言,設(shè)計(jì)的時(shí)候有明確的假想場(chǎng)景,要么是為了解決大規(guī)模并發(fā),要么是為了解決矩陣運(yùn)算,要么是為了做網(wǎng)頁(yè)渲染模板,一旦離開這個(gè)場(chǎng)景,就各種不爽。更多的語(yǔ)言,剛剛?cè)〉靡稽c(diǎn)成功,就迫不及待的想成為全能冠軍,在各個(gè)方向上拼命的伸展觸角,特別是在增強(qiáng)表達(dá)能力和提升性能方面經(jīng)常過(guò)分積極,不惜將核心語(yǔ)言改得面目全非,最后變成誰(shuí)都無(wú)法掌控的龐然大物。相比之下,Python 是現(xiàn)代編程語(yǔ)言設(shè)計(jì)和演化當(dāng)中的一個(gè)成功典范。

Python 之所以在戰(zhàn)略定位上如此清晰,戰(zhàn)略堅(jiān)持上如此堅(jiān)定,歸根結(jié)底是因?yàn)槠渖鐓^(qū)構(gòu)建了一個(gè)堪稱典范的決策和治理機(jī)制。這個(gè)機(jī)制以 Guido van Rossum (BDFL,Pythoners 都知道這是什么意思), DavidBeazley, Raymond Hettinger 等人為核心,以 PEP 為組織平臺(tái),民主而有序,集中而開明。只要這個(gè)機(jī)制本身得以維系,Python 在可見的未來(lái)里仍將一路平穩(wěn)上行。

最有可能向 Python 發(fā)起挑戰(zhàn)的,當(dāng)然是Java。Java 的用戶存量大,它本身也是一種戰(zhàn)略定位清晰而且非常堅(jiān)定的語(yǔ)言。但我并不認(rèn)為 Java 有很大的機(jī)會(huì),因?yàn)樗举|(zhì)上是為構(gòu)造大型復(fù)雜系統(tǒng)而設(shè)計(jì)的。什么是大型復(fù)雜系統(tǒng)?就是由人清清楚楚描述和構(gòu)造出來(lái)的系統(tǒng),其規(guī)模和復(fù)雜性是外生的,或者說(shuō)外界賦予的。而 AI 的本質(zhì)是一個(gè)自學(xué)習(xí)、自組織的系統(tǒng),其規(guī)模和復(fù)雜性是一個(gè)數(shù)學(xué)模型在數(shù)據(jù)的喂養(yǎng)下自己長(zhǎng)出來(lái)的,是內(nèi)生的。因此,Java大多數(shù)的語(yǔ)言結(jié)構(gòu)對(duì)于大數(shù)據(jù)的處理和 AI 系統(tǒng)的開發(fā)顯得使不上勁,你強(qiáng)的東西這里用不上,這里需要的東西你做起來(lái)又別扭。而 Python 在數(shù)據(jù)處理方面的簡(jiǎn)潔強(qiáng)悍早就盡人皆知。對(duì)比兩個(gè)功能相同的 Java 和 Python 機(jī)器學(xué)習(xí)程序,正常人只要看兩眼就能做出判斷,一定是 Python 程序更加清爽痛快。

大概在 2003 或者 2004 年的時(shí)候,我買過(guò)一本 Python 的書,作者是一位巴西人。他說(shuō)自己之所以堅(jiān)定的選擇 Python,是因?yàn)樗r(shí)候經(jīng)常夢(mèng)到未來(lái)世界將由一條大蟒蛇(蟒蛇的英文為python)統(tǒng)治。我當(dāng)時(shí)覺(jué)得這哥們好可憐,做個(gè)夢(mèng)都能夢(mèng)到這么恐怖的場(chǎng)景。但今天來(lái)看,也許他只是像黑客帝國(guó)里的程序員安德森一樣,不小心穿越到未來(lái),并且窺探到了世界的真相。

img

在線咨詢

建站在線咨詢

img

微信咨詢

掃一掃添加
動(dòng)力姐姐微信

img
img

TOP