王雄
Python在1998年誕生,開始很長一段時間無人問津,當(dāng)時Perl在開源世界中非常流行,這門語言有太多讓人喜愛的地方了。
1 Python讀起來像可執(zhí)行的偽代碼
偽代碼是這樣一種概念,它不遵循特定語言的確切句法和語法來編寫編程邏輯。自從成為一名Python程序員以來,已經(jīng)幾乎不怎么編寫偽代碼了,因為它的實際設(shè)計滿足了我的需要。
即使不太了解Python語言,也可以很容易閱讀它,這在很大程度上是由設(shè)計決定的。
Python對代碼格式中的空格規(guī)定是出了名的??崭駥τ谌魏握Z言都是必需的———它能夠讓我們區(qū)分出句子中不同的單詞。大多數(shù)語言都有關(guān)于空格用法的建議或“優(yōu)秀實踐”,但是Python大膽地要求標(biāo)準(zhǔn)化,這使得閱讀代碼并準(zhǔn)確地看到它在做什么變得非常簡單。
例如,一個經(jīng)典冒泡排序算法的實現(xiàn),將其與Java中的實現(xiàn)進行比較。
Python需要縮進來表示塊的嵌套,雖然Java也很好地使用了縮進,但這不是必需的?;ɡㄌ枦Q定塊的開始和結(jié)束,而不是間隔。因為Python使用空格作為語法,所以在其他代碼中不需要開始{和結(jié)束}符號。
Python還避免了對分號的需求,分號是使其他語言可讀的語法規(guī)則。讀起Python感覺更舒服一些,它很像偽代碼,有時會讓我都意識不到可運行的代碼是什么樣的了。
2 Python有強大的原函數(shù)
在編程語言設(shè)計中,原函數(shù)是最簡單的可用元素。Python易于閱讀這一事實并不意味著它是一種強大的語言,另一方面要歸功于它對原函數(shù)的使用。最讓人最喜歡的是Python既易于使用,又有高級生成器的概念。
假設(shè)有一個簡單的二叉樹結(jié)構(gòu),包含value,left,right,希望按順序輕松地對其進行迭代,通常會尋找“小”元素,以便在找到正確的值時立即退出。到目前為止,這聽起來很簡單,有很多種算法可以對元素進行操作。
其他語言會讓你寫一個訪問者,這樣可以在這個函數(shù)中判斷“這是正確的元素嗎?”,可以在Python中這樣做,但也不必一定這樣做。
這個生成器函數(shù)將返回一個迭代器,如果在for循環(huán)中使用該迭代器,那么它將只執(zhí)行需要的部分,而不會執(zhí)行全部,這是很強大的。
3 Python標(biāo)準(zhǔn)庫
Python有一個很棒的標(biāo)準(zhǔn)庫,其中隱藏了許多寶貴內(nèi)容,個人比較喜歡的是itertools模塊,但是更喜歡函數(shù)式編程模塊,是的,Python支持函數(shù)式編程。
除了趣味之外,itertools模塊以及heapq和functools模塊都是Python實現(xiàn)中默認提供的很有價值的東西。
4 Python的生態(tài)系統(tǒng)是龐大的
對于標(biāo)準(zhǔn)庫中沒有的很多東西,有一個巨大的生態(tài)系統(tǒng)來支持新的Pythonista,從令人興奮的包到專門針對該語言的文本編輯器插件都有。PyPi上托管了大約200 000個項目,而且項目數(shù)量還在不斷增加,每個人都可以使用這些工具,數(shù)據(jù)科學(xué)、異步框架、Web框架或者只是一些使遠程自動化更簡單的工具。
5 Python社區(qū)很獨特
Python社區(qū)非常棒。它是最早采用行為準(zhǔn)則的組織之一,首先是Python軟件基金會,然后是PyCon。這是一個真正兼具多樣性和包容性的承諾:關(guān)于這個主題的博客文章和會議演講是頻繁的、深思熟慮的,而且Python社區(qū)成員也經(jīng)常閱讀。
雖然社區(qū)是全球性的,但在本地社區(qū)也有很多很棒的活動。當(dāng)?shù)氐腜ython聚會是一個很好的去處,可以遇到聰明、有經(jīng)驗和樂于助人的人。許多聚會都會明確地為有經(jīng)驗的人預(yù)留一些時間,以幫助希望學(xué)習(xí)新概念或解決代碼問題的新手。
無論是參加本地社區(qū)會議,還是在IRC,Slack,Twitter上與在線Python社區(qū)交流,相信都會遇到可愛的人,他們都希望幫助您成為成功的開發(fā)人員。
在世界各地的社區(qū)中都有善良、有思想的Python從業(yè)者,社區(qū)為有需要的人提供的投資,數(shù)額令人鼓舞。除了那些人之外,簡單、干凈且強大的Python語言讓任何開發(fā)人員都有足夠的能力在他們的軟件開發(fā)生涯中充滿自信,或者作為一個業(yè)余愛好者享受使用有趣的語言的樂趣。如果您對學(xué)習(xí)第一種或一種新語言感興趣,請考慮使用Python。