“人生苦短,我學(xué) Python”是眾多和計算機科學(xué)有些接觸的同學(xué)耳熟能詳?shù)亩巫樱贿^最近這一風(fēng)潮有了蔓延的趨勢。近期著名房地產(chǎn)商、SOHO 中國董事長潘石屹在微博上發(fā)表了一段宣言:
潘石屹的大名常會出現(xiàn)在很多新聞報道中。在 2019 年福布斯全球億萬富豪榜上,張欣、潘石屹家族排名第 107 位,財富值 215.7 億元人民幣。年過 50 的房地產(chǎn)老總,現(xiàn)在也要搞人工智能了嗎?這一消息迅速引來人們的關(guān)注和轉(zhuǎn)發(fā)。
或許是為自己學(xué)習(xí) Python 的行為進行充分解釋,又或許是想號召更多人加入這一行列。在發(fā)出“我要學(xué) Python”這條微博一天以后,潘總又為學(xué)習(xí) Python 找到了一些理由。
潘石屹認(rèn)為 Python 是計算機語言里“進化最好的一種”。很多人都知道,隨著人工智能和數(shù)據(jù)科學(xué)的快速發(fā)展,Python 正在成為計算機領(lǐng)域里最流行的編程語言。在今年 9 月IEEE 最新發(fā)布的編程語言排行榜中,Python 在趨勢、開源、職位需求等方面均排在第一。
當(dāng)然,Python職位需求大顯然跟潘總沒什么關(guān)系。在知乎上,人們對于這一事件展開了討論,有人指出在地產(chǎn)行業(yè)里,收集、分析數(shù)據(jù)正在變得越來越重要。使用 Python 語言進行爬蟲、數(shù)據(jù)分析、機器學(xué)習(xí)算法預(yù)測是非常重要的技能。至少在學(xué)會這門編程語言后,潘總可能就不再會那么容易被 PPT上的數(shù)字騙了。潘石屹曾經(jīng)研究過攝影、木工,如今又開始進入編程領(lǐng)域,其背后肯定有著很深的思考。
潘石屹大佬都選擇學(xué)習(xí) Python,究竟為什么有這么大的魔力?與其他一些編程語言相比,Python 語言又具備哪些顯著的優(yōu)勢呢?
Python 語言簡單易用、邏輯明確并擁有海量的擴展包,因此不僅成為機器學(xué)習(xí)與數(shù)據(jù)科學(xué)的首選語言,同時在網(wǎng)頁、數(shù)據(jù)爬取、科學(xué)研究等方面成為不二選擇。此外,很多入門級的機器學(xué)習(xí)開發(fā)者都是跟隨大流選擇 Python。
具體而言,與其他編程語言相比,Python 具有以下幾方面的特征:
其一,Python 相對易于學(xué)習(xí)。我們都清楚,編程很難,因此從絕對意義上來說,除非你已經(jīng)擁有編程經(jīng)驗,否則編程語言難以學(xué)習(xí)。但相對而言,Python 的高級屬性、語法可讀性和語義直白性使得它比其他語言更容易學(xué)習(xí)。Python 社區(qū)非常強調(diào)遵循樣式規(guī)定和編寫“Python 式的”代碼,這意味著相比使用其他語言的程序員而言,Python 程序員更傾向于使用一致的命名規(guī)定、行的長度、編程習(xí)慣和其他許多類似特征,它們共同使別人的代碼更易閱讀。
其二,Python 是一種高級語言。與其他許多語言相比,Python 是一種相對“高級”的語言:它不需要(并且在許多情況下不允許)用戶擔(dān)心太多底層細(xì)節(jié),而這是其他許多語言需要去處理的。此外,Python 傾向于隱藏需要在底層語言中明確表達(dá)的各種死記硬背的聲明。這使得我們可以編寫非常緊湊、清晰的代碼。
其三,Python 是一種通用語言。根據(jù)設(shè)計,Python 是一種通用的語言。也就是說,它旨在允許程序員在任何領(lǐng)域編寫幾乎所有類型的應(yīng)用,而不是專注于一類特定的問題。在這方面,Python 可以與(相對)特定領(lǐng)域的語言進行對比,如 R 或 PHP。這些語言原則上可用于很多情形,但仍針對特定用例進行了明確優(yōu)化。
其四,Python 是一種(相對)快速的語言。從表面上看,Python 是一種快速語言的說法看起來很愚蠢。因為在標(biāo)準(zhǔn)測試時,和 C 或 Java 這樣的編譯語言相比,Python 通常會卡頓。毫無疑問,如果速度至關(guān)重要,Python 可能不會成為你最優(yōu)選擇的語言,甚至不會是第二好的語言。但在實際中,許多科學(xué)家工作流程中的限制因素不是運行時間而是開發(fā)時間。一個花費一個小時運行但只需要 5 分鐘編寫的腳本通常比一個花費 5 秒鐘運行但是需要一個禮拜編寫和調(diào)試的腳本更合意。
其五,Python 是天生面向?qū)ο蟮?。即使你正在做的只是編寫一些簡短的腳本去解析文本或挖掘一些數(shù)據(jù),Python 的許多好處也很容易領(lǐng)會到。在你開始編寫相對大型的代碼片段前,Python 的最佳功能之一可能并不明顯:Python 具有設(shè)計非常優(yōu)雅的基于對象的數(shù)據(jù)模型。事實上,如果你查看底層,你會發(fā)現(xiàn) Python 中的一切都是對象,甚至函數(shù)也是對象。