最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

為什么只有python是膠水語言?

2020-07-31 17:15 作者:自學(xué)Python的小姐姐呀  | 我要投稿

python現(xiàn)在最廣為聞名的形容大概有這些:


他是很好的膠水語言。什么是膠水語言?反正當(dāng)時(shí)的我不知道。

他是新一代的系統(tǒng)腳本。系統(tǒng)腳本是什么?

其次就是代碼可讀性。不過,這個(gè)其實(shí)還是爭(zhēng)議挺大的,我也不準(zhǔn)備在這多說了。

反正我發(fā)現(xiàn)大家其實(shí)都沒解釋清楚。


大概是因?yàn)椋切┐笈兌家呀?jīng)把很多東西習(xí)以為常了,卻不知道新人其實(shí)都一頭霧水。其實(shí)事情也沒那么復(fù)雜。



膠水語言

先從Hello world開始。所有學(xué)python的童鞋都會(huì)從這句話開始:


print "Hello World!"。


問題來了:為什么所有語言第一件做的事情,就是Hello World?


其實(shí),他代表了UNIX統(tǒng)一的文本處理模型及接口。這些個(gè)玩意,Windows的編程領(lǐng)域是很難接觸到的也很難理解的。


下面寫個(gè)范例。比如我這么干了:


# file:?say.py


import sys

txt = sys.argv[1]

print "Hello %s!"%(txt)

那么我就可以在Linux或Mac的終端上直接輸入:


python?say.py?World


輸出結(jié)果就會(huì)是:


Hello World!


這樣就確保了,在終端調(diào)用上的直觀與可編程性。


這樣,我就不用必須在別的python語言里面調(diào)用python了,而能夠直接在shell上跟其它處理程序直接連接。


BTW,這其實(shí)也是Hello world,呵呵。


再玩復(fù)雜點(diǎn)的:


file:?say2.py


import sys

for line in sys.stdin.readlines():

print "Hello %s!"%(line.strip())

那么我就可以在終端這么干:echo -e 'water\nmaomaol\nkenbing\nlonger\nchuang'|python?say3.py


輸出就會(huì)是:


Hello water!

Hello maomaol!

Hello kenbing!

Hello longer!

Hello chuang!

再進(jìn)一步,我可以把前面的內(nèi)容寫成文件,比如寫成一個(gè)這樣的文件:


names.txt


water

maomaol

kenbing

longer

chuang

就可以直接更便捷地做處理:


cat names.txt | python?say2.py?這樣,我就用cat命令把文本打印出來,然后輸出到say2.py上去了。


輸出一樣的結(jié)果。


但是,我輸入到終端又有什么用呢???沒錯(cuò),到終端的確沒啥用,我們把他輸出到文件吧!


cat names.txt | python?say2.py?> result.txt


就這樣,結(jié)果就保存到了result.txt這個(gè)文件里了。


這樣做的意義是什么?

意義就是,在終端上我可以隨意地組合他和其它程序,作為一個(gè)中間處理模塊。


而且,他可以如此地簡(jiǎn)單便捷,一些簡(jiǎn)單的腳本只需要cat一下馬上就能明白是什么意思。


一個(gè)表達(dá)式一行代碼,代碼塊有一致的標(biāo)準(zhǔn)的縮進(jìn),標(biāo)準(zhǔn)的命名方式,簡(jiǎn)練的語言,支持注釋……


別的程序要訪問或調(diào)用,很簡(jiǎn)單,一個(gè)命令把指定數(shù)據(jù)輸入到這里就好,然后要怎么拼接怎么拼接;

周期性地處理也沒問題,輸出到文件,等待別的程序調(diào)用。

比起windows各種詭異的processer,各種詭異的二進(jìn)制存儲(chǔ)的文件,這樣一致的接口簡(jiǎn)直能讓人想哭了。


系統(tǒng)腳本上:


他比SHELL多了很多數(shù)學(xué)及字符串處理能力,還多了很多很好用的迭代方法,還多了很多的原生的數(shù)據(jù)結(jié)構(gòu);

他比PERL多了很要命的代碼可讀性。

比起ruby和nodejs,他基本所有機(jī)器都預(yù)裝,而且已經(jīng)經(jīng)歷了時(shí)間的考驗(yàn)。雖然,將來的確會(huì)有被這倆貨代替的可能性。

比起C/C++,他多了一個(gè)終端、甚至像ipython這樣的加強(qiáng)版神器終端,可以邊調(diào)試代碼邊把沒問題的代碼寫進(jìn)文件。而且,源碼即可執(zhí)行。

在我看來,這些就是python的優(yōu)勢(shì)。讓他當(dāng)之無愧是系統(tǒng)腳本的王者。


只可惜,現(xiàn)在就連大多數(shù)的程序員,都已經(jīng)被圖形化界面給寵壞了,也習(xí)慣了各種大廠商、IDE提供的諸多工具包與功能,卻把很多很基礎(chǔ)的東西都給忽略了,卻在不斷地、重復(fù)地造輪子。這就叫碼農(nóng)。


所以,大概也就敢于擁抱變化的系統(tǒng)管理員、運(yùn)維工程師或數(shù)據(jù)分析工程師,才會(huì)長(zhǎng)久地持續(xù)地喜歡python。


這個(gè)用戶群,小眾而又龐大,而且整個(gè)業(yè)界對(duì)這這方面的專家有著很大的缺口。


純以前端兼設(shè)計(jì)師的身份,向這部分人群表示高山仰止。


然后,我再繼續(xù)折騰別的東西去。


為什么只有python是膠水語言?的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
长丰县| 兴国县| 子长县| 德清县| 竹北市| 张家川| 松原市| 永宁县| 出国| 得荣县| 静宁县| 隆昌县| 台江县| 井陉县| 库伦旗| 察雅县| 宜兴市| 旺苍县| 册亨县| 班玛县| 余姚市| 桐柏县| 米易县| 清新县| 塘沽区| 毕节市| 元朗区| 高唐县| 南宁市| 称多县| 开远市| 永福县| 呼图壁县| 准格尔旗| 内黄县| 广河县| 安泽县| 鄂尔多斯市| 鸡西市| 海宁市| 河间市|