自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

數(shù)百種編程語(yǔ)言,而我為什么要學(xué)Python?

開(kāi)發(fā) 后端
如果學(xué)習(xí)了一門冷門的技術(shù),不但英雄無(wú)用武之地,而且,在求職市場(chǎng)上也沒(méi)有什么優(yōu)勢(shì)。要問(wèn)我的入門編程語(yǔ)言選擇,我首選一定是 Python,其具體原因可以引用一位網(wǎng)友的回答,「學(xué)完 Python,可以上天」。

數(shù)百種編程語(yǔ)言,而我為什么要學(xué)Python?

引用

如果讓你從數(shù)百種的編程語(yǔ)言中選擇一個(gè)入門語(yǔ)言?你會(huì)選擇哪一個(gè)?

是應(yīng)用率***、長(zhǎng)期霸占排行榜的常青藤 Java?是易于上手,難以精通的 C?還是在游戲和工具領(lǐng)域仍占主流地位的 C++?亦或是占據(jù) Windows 桌面應(yīng)用程序半壁江山的 C#?……

我想,每個(gè)人可能會(huì)根據(jù)工作要求的必然條件、興趣愛(ài)好的充分條件,做出相應(yīng)不同的選擇。也有很多工程師在學(xué)習(xí)一門新的技術(shù)時(shí),都會(huì)擔(dān)心自己所學(xué)的技術(shù)是否會(huì)越來(lái)越流行,盡量去避免學(xué)習(xí)了一個(gè)非常小眾和冷門的技術(shù)。這種擔(dān)憂是可以理解的,畢竟,一門技術(shù)使用的人越多,對(duì)于早期學(xué)習(xí)這門技術(shù)的工程師來(lái)說(shuō),就有越多的好處和優(yōu)勢(shì)。與此同時(shí),如果學(xué)習(xí)了一門冷門的技術(shù),不但英雄無(wú)用武之地,而且,在求職市場(chǎng)上也沒(méi)有什么優(yōu)勢(shì)。要問(wèn)我的入門編程語(yǔ)言選擇,我***一定是 Python,其具體原因可以引用一位網(wǎng)友的回答,「學(xué)完 Python,可以上天」。

 

Python 流行度

如果大家身處互聯(lián)網(wǎng),一定能夠切身地感受到 Python 語(yǔ)言的流行程度。Python 語(yǔ)言由于其簡(jiǎn)單易學(xué)、語(yǔ)法優(yōu)美、應(yīng)用領(lǐng)域廣泛等諸多優(yōu)點(diǎn),俘獲了大批的粉絲。但是,拿不出確切的證據(jù),很多開(kāi)發(fā)者也無(wú)法說(shuō)服自己靜下心來(lái)學(xué)習(xí)。接下來(lái)我們就用數(shù)據(jù)來(lái)說(shuō)話。

編程語(yǔ)言排行榜

首先,我們了解一下近期編程語(yǔ)言排行榜中,Python 語(yǔ)言排名的變化。TIOBE 每個(gè)月發(fā)布的編程語(yǔ)言排行榜是編程語(yǔ)言流行趨勢(shì)的一個(gè)指標(biāo),每個(gè)月更新。這份排行榜排名基于互聯(lián)網(wǎng)上有經(jīng)驗(yàn)的工程師、課程和第三方廠商的數(shù)量,使用搜索引擎進(jìn)行計(jì)算而得,一定程度上反應(yīng)了編程語(yǔ)言的熱度。

 

2017年9月TIOBE編程語(yǔ)言排行榜

 

2017年10月TIOBE編程語(yǔ)言排行榜

 

2017年11月TIOBE編程語(yǔ)言排行榜

從近三個(gè)月的排行看,Python 一直穩(wěn)定在排行榜的前五名。但編程語(yǔ)言排行榜僅能反應(yīng) Python 語(yǔ)言當(dāng)下的流行程度,并不能回答 Python 是否越來(lái)越流行這個(gè)問(wèn)題。不過(guò),我們可以從 TIOBE 發(fā)布的歷史數(shù)據(jù)中找到一些線索。在 2015 年 2 月份發(fā)布的 TIOBE 編程語(yǔ)言排行榜中,Python 還排在第 8 名的位置,短短兩年半的時(shí)間,Python 語(yǔ)言已經(jīng)躥升到第 4 名,其上升速度不可謂不快。

Google trends

既然 TIOBE 的編程語(yǔ)言排行榜是根據(jù)搜索引擎得到的數(shù)據(jù),那么,我們也可以通過(guò)搜索引擎得到 Python 的搜索指數(shù),通過(guò)搜索指數(shù)來(lái)查看 Python 語(yǔ)言熱度的變化。圖1.1 給出了最近 4 年,Python 這個(gè)關(guān)鍵詞的 Google 搜索指數(shù)。

 

圖 1.1 Python 的 Google 搜索指數(shù)

圖1.1中可以看到,從全球范圍來(lái)看,Python 語(yǔ)言是越來(lái)越流行的,其熱度超過(guò)了以往任何時(shí)候。從中國(guó)的搜索指數(shù)來(lái)看,Python 語(yǔ)言已經(jīng)不是越來(lái)越流行這么簡(jiǎn)單了,而是出現(xiàn)了爆發(fā)式的增長(zhǎng)。2014 年以前,Python 在中國(guó)都屬于小眾語(yǔ)言,從 2014 年開(kāi)始,Python 在中國(guó)越來(lái)越火爆。一個(gè)有趣的事實(shí)是,在圖 1.1 給出的 Python 搜索指數(shù)中,Python 在中國(guó)的搜索每年都會(huì)有一個(gè)非常明顯的、向下的尖刺。這個(gè)尖刺所在的時(shí)間正好與春節(jié)的時(shí)間吻合,說(shuō)明春節(jié)對(duì)所有中國(guó)人都是一個(gè)重要的節(jié)日,在春節(jié)期間,很少有人還在專研技術(shù)了。

微信搜索指數(shù)

我們?cè)賮?lái)看一下***發(fā)布的微信搜索指數(shù)中,Python 語(yǔ)言的熱度如何。圖 1.2 給出了Python、Java、PHP 和 Ruby 的微信搜索指數(shù)對(duì)比圖。

 

圖 1.2 Python的微信搜索指數(shù)

由于微信最多支持 4 個(gè)關(guān)鍵詞進(jìn)行比較,因此,我們選擇了 Java、PHP、Ruby 與 Python 進(jìn)行比較。選擇 Java 是因?yàn)樗且婚T比 Python 使用更加廣泛的編程語(yǔ)言;選擇 PHP 是因?yàn)樗徽J(rèn)為是“世界上***的”編程語(yǔ)言;選擇 Ruby 是因?yàn)?,它是所有編程語(yǔ)言中,與 Python 定位最近接近的編程語(yǔ)言。從圖中可以看出,Python 語(yǔ)言和 Java 語(yǔ)言的微信搜索指數(shù)***,并且,Python 語(yǔ)言的微信搜索指數(shù)比 Java 語(yǔ)言還要略高一點(diǎn)。

基于以上的編程語(yǔ)言排行榜、Google 搜索指數(shù)和微信搜索指數(shù)這幾個(gè)不同的數(shù)據(jù)來(lái)源,檢視了 Python 語(yǔ)言的流行程度?,F(xiàn)在,我們可以非常明確的得出一個(gè)結(jié)論——Python 語(yǔ)言越來(lái)越流行,而且現(xiàn)在非?;?。

那么為什么 Python 語(yǔ)言會(huì)越來(lái)越流行呢?

原因諸多,如越來(lái)越多的工程師使用 Python 進(jìn)行大數(shù)據(jù)處理;科研工作者開(kāi)始使用 Python 來(lái)進(jìn)行數(shù)據(jù)分析;系統(tǒng)管理員使用 Python 管理 Linux 系統(tǒng);開(kāi)源的云計(jì)算平臺(tái) OpenStack 使用 Python 語(yǔ)言開(kāi)發(fā);很多編程愛(ài)好者使用 Python 進(jìn)行爬蟲(chóng)等。但是,筆者認(rèn)為,Python 語(yǔ)言之所以越來(lái)越流行,使用越來(lái)越廣泛,主要還是得益于其自身的諸多優(yōu)點(diǎn)。

 

對(duì) Python 的愛(ài)與恨:那些不得不說(shuō)的優(yōu)缺點(diǎn)

顯著的優(yōu)點(diǎn)

Python 語(yǔ)言擁有諸多的優(yōu)點(diǎn),這其中,以下幾個(gè)優(yōu)點(diǎn)特別顯著:

  • 簡(jiǎn)單易學(xué): Python 語(yǔ)言相對(duì)于其他編程語(yǔ)言來(lái)說(shuō),屬于比較容易學(xué)習(xí)的一門編程語(yǔ)言,它注重的是如何解決問(wèn)題而不是編程語(yǔ)言的語(yǔ)法和結(jié)構(gòu)。正是因?yàn)?Python 語(yǔ)言簡(jiǎn)單易學(xué),所以,已經(jīng)有越來(lái)越多的初學(xué)者選擇 Python 語(yǔ)言作為編程的入門語(yǔ)言。例如,在浙江省 2017 年高中信息技術(shù)改革中,《算法與程序設(shè)計(jì)》課程將使用 Python 語(yǔ)言替換原有的 VB 語(yǔ)言。
  • 語(yǔ)法優(yōu)美: Python 語(yǔ)言力求代碼簡(jiǎn)潔、優(yōu)美。在 Python 語(yǔ)言中,采用縮進(jìn)來(lái)標(biāo)識(shí)代碼塊,通過(guò)減少無(wú)用的大括號(hào),去除語(yǔ)句末尾的分號(hào)等視覺(jué)雜訊,使得代碼的可讀性顯著提高。閱讀一段良好的 Python 程序就感覺(jué)像是在讀英語(yǔ)一樣,它使你能夠?qū)W⒂诮鉀Q問(wèn)題,而不用太糾結(jié)編程語(yǔ)言本身的語(yǔ)法。
  • 豐富強(qiáng)大的庫(kù): Python 語(yǔ)言號(hào)稱自帶電池(Battery Included),寓意是 Python 語(yǔ)言的類庫(kù)非常的全面,包含了解決各種問(wèn)題的類庫(kù)。無(wú)論實(shí)現(xiàn)什么功能,都有現(xiàn)成的類庫(kù)可以使用。如果一個(gè)功能比較特殊,標(biāo)準(zhǔn)庫(kù)沒(méi)有提供相應(yīng)的支持,那么,很大概率也會(huì)有相應(yīng)的開(kāi)源項(xiàng)目提供了類似的功能。合理使用 Python 的類庫(kù)和開(kāi)源項(xiàng)目,能夠快速的實(shí)現(xiàn)功能,滿足業(yè)務(wù)需求。
  • 開(kāi)發(fā)效率高: Python 的各個(gè)優(yōu)點(diǎn)是相輔相成的。例如,Python 語(yǔ)言因?yàn)橛辛素S富強(qiáng)大的類庫(kù),所以,Python 的開(kāi)發(fā)效率能夠顯著提高。相對(duì)于 C、C++ 和 Java 等編譯語(yǔ)言,Python 開(kāi)發(fā)者的效率提高了數(shù)倍。實(shí)現(xiàn)相同的功能,Python 代碼的文件往往只有 C、C++ 和 Java 代碼的 1/5~1/3。雖然 Python 語(yǔ)言擁有很多吸引人的特性,但是,各大互聯(lián)網(wǎng)公司廣泛使用 Python 語(yǔ)言,很大程度上是因?yàn)?Python 語(yǔ)言開(kāi)發(fā)效率高這個(gè)特點(diǎn)。開(kāi)發(fā)效率高的語(yǔ)言,能夠更好的滿足互聯(lián)網(wǎng)快速迭代的需求,因此,Python 語(yǔ)言在互聯(lián)網(wǎng)公司使用非常廣泛。
  • 應(yīng)用領(lǐng)域廣泛: Python 語(yǔ)言的另一大優(yōu)點(diǎn)就是應(yīng)用領(lǐng)域廣泛,工程師可以使用 Python 做很多的事情。例如,Web 開(kāi)發(fā)、網(wǎng)絡(luò)編程、自動(dòng)化運(yùn)維、Linux 系統(tǒng)管理、數(shù)據(jù)分析、科學(xué)計(jì)算、人工智能、機(jī)器學(xué)習(xí)等等。Python 語(yǔ)言介于腳本語(yǔ)言和系統(tǒng)語(yǔ)言之間,我們根據(jù)需要,既可以將它當(dāng)做一門腳本語(yǔ)言來(lái)編寫腳本,也可以將它當(dāng)做一個(gè)系統(tǒng)語(yǔ)言來(lái)編寫服務(wù)。

不可忽視的缺點(diǎn)

毫無(wú)疑問(wèn),Python 確實(shí)有用很多的優(yōu)點(diǎn),每一個(gè)優(yōu)點(diǎn)看起來(lái)都非常吸引人。但是,Python 并不是沒(méi)有缺點(diǎn)的,最主要的缺點(diǎn)有以下幾個(gè):

  • Python 的執(zhí)行速度不夠快。當(dāng)然,這也不是一個(gè)很嚴(yán)重的問(wèn)題,一般情況下,我們不會(huì)拿 Python 語(yǔ)言與 C/C++ 這樣的語(yǔ)言進(jìn)行直接比較。在 Python 語(yǔ)言的執(zhí)行速度上,一方面,網(wǎng)絡(luò)或磁盤的延遲,會(huì)抵消掉部分 Python 本身消耗的時(shí)間;另一方面,因?yàn)?Python 特別容易和 C 結(jié)合起來(lái),因此,我們可以通過(guò)分離一部分需要優(yōu)化速度的應(yīng)用,將其轉(zhuǎn)換為編譯好的擴(kuò)展,并在整個(gè)系統(tǒng)中使用 Python 腳本將這部分應(yīng)用連接起來(lái),以提高程序的整體效率。
  • Python 的 GIL 鎖限制并發(fā): Python 的另一個(gè)大問(wèn)題是,對(duì)多處理器支持不好。如果讀者接觸 Python 時(shí)間比較長(zhǎng),那么,一定聽(tīng)說(shuō)過(guò) GIL 這個(gè)詞。GIL 是指 Python 全局解釋器鎖(Global Interpreter Lock),當(dāng) Python 的默認(rèn)解釋器要執(zhí)行字節(jié)碼時(shí),都需要先申請(qǐng)這個(gè)鎖。這意味著,如果試圖通過(guò)多線程擴(kuò)展應(yīng)用程序,將總是被這個(gè)全局解釋器鎖限制。當(dāng)然,我們可以使用多進(jìn)程的架構(gòu)來(lái)提高程序的并發(fā),也可以選擇不同的 Python 實(shí)現(xiàn)來(lái)運(yùn)行我們的程序。
  • Python 2 與 Python 3 不兼容: 如果一個(gè)普通的軟件或者庫(kù),不能夠做到后向兼容,那么,它會(huì)被用戶無(wú)情的拋棄了。在 Python 中,一個(gè)槽點(diǎn)是 Python 2 與 Python 3 不兼容。因?yàn)?Python 沒(méi)有向后兼容,給所有的 Python 工程師帶來(lái)了無(wú)數(shù)的煩惱。

如何上手?

了解了 Python 的整體趨勢(shì)及優(yōu)缺點(diǎn),接下來(lái)自然是如何學(xué)習(xí) Python?在此筆者的建議是:

  • 找一本淺顯易懂比較好的教程,無(wú)須多種選擇,僅精選一本,從頭到尾看完。將教程中的案例自己親手實(shí)踐一遍。
  • 通過(guò)實(shí)際項(xiàng)目練手。如果僅是紙上談兵,可能過(guò)目就忘,所以***是要有真實(shí)的項(xiàng)目做。注意,真實(shí)項(xiàng)目不一定非要是商業(yè)項(xiàng)目,例如自己動(dòng)手搭建網(wǎng)站,其關(guān)鍵是要核心功能完整。
  • ***能找到一個(gè)已經(jīng)會(huì) Python 的人。問(wèn)他一點(diǎn)學(xué)習(xí)規(guī)劃的建議,然后在遇到卡殼的地方找他指點(diǎn)。這樣會(huì)事半功倍。但是,要學(xué)會(huì)搜索,學(xué)會(huì)如何更好地提問(wèn)。

 

***,在選擇使用哪一門編程語(yǔ)言之前,我還想提醒讀者的是——“世界上只有兩種編程語(yǔ)言,一種是天天被人吐槽但卻被廣泛使用的編程語(yǔ)言,一種則是無(wú)人問(wèn)津沒(méi)有存在感的編程語(yǔ)言”。Python 語(yǔ)言作為***的動(dòng)態(tài)類型語(yǔ)言,自然有它的道理。如果我們充分了解它的優(yōu)缺點(diǎn),在使用的時(shí)候,取其精華去其糟粕,那么,Python 一定是工程師解決問(wèn)題的一把利劍。 

責(zé)任編輯:龐桂玉 來(lái)源: 36大數(shù)據(jù)
相關(guān)推薦

2010-11-03 09:22:00

C語(yǔ)言

2023-10-09 18:39:13

Python代碼

2023-08-30 10:20:34

編程語(yǔ)言Python

2021-04-06 15:20:05

編程語(yǔ)言JavaIT

2022-11-28 09:58:58

C++開(kāi)發(fā)

2012-04-11 09:19:08

Haskell編程

2020-12-21 14:28:01

語(yǔ)言JavaC ++

2018-05-23 00:20:29

2021-03-26 10:04:38

數(shù)據(jù)結(jié)構(gòu)技術(shù)

2017-04-05 18:10:05

R語(yǔ)言開(kāi)發(fā)Ross

2020-10-14 08:33:23

Prometheus監(jiān)控體系

2019-04-22 09:58:25

C語(yǔ)言Web操作系統(tǒng)

2020-01-22 16:53:54

編程語(yǔ)言PythonJava

2023-01-24 16:13:22

編程語(yǔ)言JavaIT

2010-01-22 15:14:37

學(xué)習(xí)C++

2019-11-15 13:10:17

潘石屹Python語(yǔ)言

2020-05-28 10:08:06

云計(jì)算Python編程語(yǔ)言

2016-03-08 09:50:42

2021-02-23 10:19:46

編程技能開(kāi)發(fā)

2015-05-25 15:31:56

C語(yǔ)言學(xué)習(xí)和使用 C 語(yǔ)言
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)