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

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

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

2020-08-01 10:28 作者:自學(xué)Python的小姐姐呀  | 我要投稿

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


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

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

其次就是代碼可讀性。不過,這個(gè)其實(shí)還是爭議挺大的,我也不準(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è)中間處理模塊。


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


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


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

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

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


系統(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)勢。讓他當(dāng)之無愧是系統(tǒng)腳本的王者。


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


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


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


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


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


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

分享到微博請(qǐng)遵守國家法律
曲沃县| 浦东新区| 公主岭市| 邵东县| 平南县| 荃湾区| 玉门市| 佛冈县| 邵武市| 清徐县| 蒙自县| 梁平县| 洞口县| 子洲县| 鄄城县| 四子王旗| 雷山县| 错那县| 汤原县| 通山县| 兴业县| 阿拉善左旗| 会昌县| 尼玛县| 葫芦岛市| 德阳市| 普宁市| 库车县| 黄龙县| 肇源县| 县级市| 涞水县| 当涂县| 尼木县| 班戈县| 密山市| 秦安县| 舞阳县| 漳州市| 永新县| 贺兰县|