欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Python為啥這么招人稀罕?

系統(tǒng) 1611 0

用Python的理由

現(xiàn)在有數(shù)百種編程語言可供使用,從成熟的C和C++到Ruby、C#和Lua等新秀,再到Java這樣的企業(yè)級重器。要選擇一門編程語言來學(xué)習(xí)確實很難。雖然沒有一種語言能適合任何場景,但我覺得,對于大量的編程問題來說,Python都算得上是個好選擇。如果正在學(xué)習(xí)編程,Python也是一個不錯的選擇。目前全球有數(shù)十萬名程序員都在使用Python,并且用戶數(shù)每年都在增長。

Python能夠持續(xù)吸引新用戶,是有很多理由的。Python是一款真正的跨平臺編程語言,從Windows、Linux/UNIX到Macintosh平臺,從超級計算機到手機,它都能很好地運行。Python可以用于開發(fā)小型應(yīng)用程序和快速原型系統(tǒng),但也能擴展到足以開發(fā)大型程序。Python自帶了功能強大且易于使用的圖形用戶界面(GUI)工具包、Web編程庫等。而且更重要的是,Python完全免費。

1.2 Python的長處

Python是Guido van Rossum在20世紀(jì)90年代研發(fā)的一種現(xiàn)代編程語言(以一個著名的喜劇團體命名)。盡管Python并不能完美地適用于所有應(yīng)用程序的開發(fā),但它的優(yōu)勢使其成為許多情況下的理想選擇。

1.2.1 Python易于使用

熟悉傳統(tǒng)語言的程序員會發(fā)現(xiàn),Python很容易學(xué)習(xí)。包含了所有熟悉的結(jié)構(gòu),如循環(huán)、條件語句、數(shù)組等,但在Python中很多都更易于使用。原因有以下幾點。

  • 類型與對象關(guān)聯(lián),而不是變量。變量可以被賦予任何類型的值,列表也可以包含許多類型的對象。這也意味著通常不需要進行強制類型轉(zhuǎn)換(type casting),代碼再也不用受制于預(yù)先聲明的類型了。
  • Python通常可以執(zhí)行更高級別的抽象操作。有一部分原因是源于Python語言的構(gòu)建方式,另一部分原因是Python的發(fā)行版附帶了內(nèi)容豐富的標(biāo)準(zhǔn)代碼庫。一個下載網(wǎng)頁的程序用兩三行代碼就可以寫完了!
  • 語法規(guī)則非常簡單。雖然成為一名專業(yè)的Python高手需要耗費很多時間和精力,但即便是初學(xué)者也能快速獲取到足夠的Python語法并編寫出實用的代碼。

Python非常適合應(yīng)用程序的快速開發(fā)。用Python編寫應(yīng)用程序的時間可能只有用C或Java的五分之一,并且代碼行數(shù)只有等效C程序的五分之一,這種情況并不少見。當(dāng)然,這要視具體的應(yīng)用場景而定。對于那種大部分是在for循環(huán)中執(zhí)行整數(shù)運算的數(shù)值算法,Python提升的生產(chǎn)力會少得多。對于普通的應(yīng)用來說,生產(chǎn)力收益可能會比較可觀。

1.2.2 Python富有表現(xiàn)力

Python是一種極具表現(xiàn)力的編程語言。這里的“表現(xiàn)力”是指:同樣是一行代碼,Python可以完成的操作比其他大多數(shù)語言都要多。 表現(xiàn)力較強的語言,優(yōu)勢十分明顯,需要編寫的代碼越少,項目完成的速度就越快。代碼越少,程序就越容易維護和調(diào)試。

為了體會一下Python的表現(xiàn)力是如何簡化代碼的,請考慮交換兩個變量var1和var2的值。在類似Java的語言中,這需要3行代碼和1個額外的變量:

            
              int temp = var1;
var1 = var2;
var2 = temp;
            
          

在將var2的值賦給var1時,需要先用變量temp暫存var1的值,然后再把該暫存值賦給var2。這個過程并不是很復(fù)雜,但是閱讀這3行代碼并理解這是為了完成數(shù)值交換,是要花些工夫的,即便是有經(jīng)驗的程序員也一樣。

相比之下,Python允許在一行代碼中完成相同的交換操作,并且從交換方式就能明顯看出交換確實發(fā)生了:

            
              var2, var1 = var1, var2
            
          

當(dāng)然這只是一個很簡單的例子,但類似的優(yōu)點在Python中俯仰皆是。

1.2.3 Python可讀性好

Python的另一個優(yōu)點是可讀性好。也許讀者會認(rèn)為,編程語言只要能被計算機讀懂就可以了,但其實人類同樣得能讀懂。要閱讀代碼的人,可能是調(diào)試人員(很可能就是寫程序的人),可能是維護人員(仍然可能是寫程序的人),也可能是任何將來修改代碼的人。凡此種種,總之代碼越容易閱讀和理解越好。

代碼越容易理解,就越易于調(diào)試、維護和修改。Python在這方面的主要優(yōu)勢就是利用縮進。與大多數(shù)語言不同,Python堅持要求代碼塊必須整體縮進。盡管這會讓有些人感到奇怪,但好處就是代碼總是能以一種非常易懂的風(fēng)格進行格式化。

以下是兩小段程序,一個用Perl編寫,另一個用Python編寫。兩者的操作相同,參數(shù)都是兩個相同大小的數(shù)值列表,返回對其兩兩求和后的列表。我認(rèn)為Python代碼的可讀性比Perl代碼更好,看起來更干凈,難以理解的符號更少:

            
              # Perl版
sub pairwise_sum {
 my($arg1, $arg2) = @_;
 my @result;
 for(0..$#$arg1) {
 push(@result, $arg1->[$_] + $arg2->[$_]);
 }
 return(\@result);
}
# Python版
def pairwise_sum(list1, list2): 
 result = [] 
 for i in range(len(list1)): 
 result.append(list1[i] + list2[i])
 return result
            
          

上面兩段代碼完成的工作相同,但Python代碼勝在了可讀性上。當(dāng)然,Perl還能有其他的實現(xiàn)方式,其中有一些確實會比以上代碼簡潔得多,但我認(rèn)為也更加晦澀難懂。

1.2.4 Python功能齊備

Python的另一個優(yōu)勢是“功能齊備”(batteries included)理念,因其自帶了很多函數(shù)庫。基本思路就是,安裝Python后就應(yīng)該萬事俱備,不需要再安裝其他庫就能真正開始工作了。這就是為什么Python的標(biāo)準(zhǔn)庫自帶了電子郵件、網(wǎng)頁、數(shù)據(jù)庫、操作系統(tǒng)調(diào)用、GUI開發(fā)等處理模塊。

例如,只需要寫兩行代碼,就可以用Python編寫一個Web服務(wù)器,用于共享某個目錄中的文件。

            
              import http.server
http.server.test(HandlerClass=http.server.SimpleHTTPRequestHandler)
            
          

無須再安裝用于網(wǎng)絡(luò)連接和HTTP的庫,Python都已內(nèi)置好了,開箱即用。

1.2.5 Python跨平臺

Python還是一種優(yōu)秀的跨平臺語言,可以在很多平臺上運行,包括Windows、Mac、Linux、UNIX等。因為它是解釋型語言,相同代碼可以在任何裝有Python解釋器的平臺上運行,而目前幾乎所有平臺都具備了Python的解釋器。Python甚至還有在Java(Jython)和.NET(IronPython)中運行的版本,為運行Python提供了更多可能的平臺。

1.2.6 Python免費

Python還是免費的。自始至終,Python就是以開源的方式研發(fā)的,并且可以免費獲取。任一版本的Python都可自行下載和安裝,并可用于開發(fā)商業(yè)或個人應(yīng)用,分文不收。

雖然世人的態(tài)度在慢慢轉(zhuǎn)變,但由于擔(dān)心缺乏技術(shù)支持,擔(dān)心缺少付費客戶的影響力,有些人仍然對免費軟件持懷疑態(tài)度。但是Python已經(jīng)被許多大牌公司用于實現(xiàn)關(guān)鍵業(yè)務(wù),谷歌、Rackspace、Industrial Light&Magic和Honeywell只是其中的幾個例子。這些公司和許多其他公司都很清楚,Python是一個非常穩(wěn)定、可靠且支持良好的產(chǎn)品,擁有一個活躍的、博識的用戶社區(qū)。即便提出高難度的Python問題,也能在Python互聯(lián)網(wǎng)新聞組中迅速獲得答案,速度會比大多數(shù)技術(shù)支持電話快得多,而且無須付費、保證正確。

Python和開源軟件

不僅Python是免費的,它的源代碼也可以免費使用,可隨意進行修改、完善和擴展。因為源代碼是免費提供的,所以可供所有人查看并修改。其他那些帶有版權(quán)的軟件,鮮有能以合理的費用進行這種修改的。
如果是第一次接觸開源軟件,大家應(yīng)該要了解,不僅可以自由使用和修改Python,還能夠(也鼓勵)為其做出貢獻并對其進行改進。根據(jù)自身的條件、興趣和技能,可以給出財務(wù)上的貢獻,例如捐贈給Python軟件基金會(Python Software Foundation,PSF)。也可以參加特殊興趣小組(Special Interest Group,SIG),對Python內(nèi)核或某個輔助模塊的發(fā)行版進行測試并給出反饋。還可以向社區(qū)貢獻一些自己或公司開發(fā)的東西。當(dāng)然貢獻的大小完全是自行決定的,但只要有能力就一定要考慮去做點什么。這里正在創(chuàng)造巨大的價值,有機會就來添磚加瓦吧。

Python滿足了很多期許,表現(xiàn)力強大、可讀性好、內(nèi)置庫豐富、跨平臺,而且還是開源的。難道真的就完美無缺了嗎?

1.3 Python的短板

雖然Python擁有很多優(yōu)點,但沒有哪種編程語言能夠勝任所有工作,因此Python并不能完美地滿足一切需求。如果要確定Python是否適用于當(dāng)前場景,還需要了解Python不擅長的領(lǐng)域。

1.3.1 Python不是速度最快的語言

Python的執(zhí)行速度可能算得上是一個缺點。Python不是一個完全編譯的語言,而是先編譯為內(nèi)部字節(jié)碼形式,然后交由Python解釋器來執(zhí)行。Python為某些操作給出了高效的實現(xiàn),例如,用正則表達(dá)式解析字符串,可以做到與自己編寫的任何C語言代碼一樣快,甚至?xí)臁5诖蠖鄶?shù)情況下,采用Python會比C之類的語言實現(xiàn)更慢。但大家應(yīng)該保持以下觀點:對絕大多數(shù)應(yīng)用程序而言,現(xiàn)代計算機的計算能力都是過剩的。開發(fā)速度比程序運行速度更為重要,而Python程序通常編寫速度會快很多。另外,用C或C ++編寫的模塊對Python進行擴展也比較容易,程序當(dāng)中的CPU密集型部分可以交由這些模塊來運行。

1.3.2 Python的庫不算最多

雖然Python自帶了一批優(yōu)秀的函數(shù)庫集合,而且還有很多其他庫可用,但是Python在庫的數(shù)量上并不算領(lǐng)先。像C、Java和Perl之類的編程語言,可用的庫集合數(shù)量更為龐大。它們在某些領(lǐng)域提供的解決方案是Python所沒有的,或者Python可能只提供了其中的一種可選方案。不過這些往往是相當(dāng)專業(yè)的領(lǐng)域,而Python是很容易擴展的,既可以用Python,也可以用C或其他語言的現(xiàn)有庫。對于幾乎所有的常規(guī)計算問題,Python庫的支持能力都非常出色。

1.3.3 Python在編譯時不檢查變量類型

與某些其他編程語言不同,Python變量不像容器那樣工作,而更像是引用整數(shù)、字符串、類實例等各類對象的標(biāo)簽。這表示這些對象本身雖然是有類型的,但引用它們的變量并沒有與類型進行綁定。變量x可能在某一行代碼中引用一個字符串,而在另一行代碼中引用一個整數(shù):

Python為啥這么招人稀罕?_第1張圖片

Python將類型與對象關(guān)聯(lián),而不是與變量關(guān)聯(lián),這就意味著Python解釋器無法識別出變量類型不符的錯誤。假設(shè)變量count本來是用來保存整數(shù)的,但如果將字符串"two"賦給它,在Python里也完全沒問題。傳統(tǒng)的程序員將這種處理方式算作一個缺點,因為對代碼失去了額外的免費檢查。但是這種錯誤通常不難發(fā)現(xiàn)和修復(fù),Python的代碼檢測功能可以避免類型錯誤的發(fā)生。大多數(shù)Python程序員都認(rèn)為,動態(tài)類型的靈活性是劃得來的。

1.3.4 Python對移動應(yīng)用的支持不足

在過去的10年中,移動設(shè)備的數(shù)量和種類都出現(xiàn)了爆炸式的增長,到處都是智能手機、平板電腦、平板手機、Chromebook,運行的操作系統(tǒng)也是五花八門。Python在移動計算領(lǐng)域并不算強大。雖然有解決方案可選,但在移動設(shè)備上運行Python并不總是能一帆風(fēng)順,用Python編寫和發(fā)布商業(yè)應(yīng)用還存在問題。

1.3.5 Python對多處理器的利用不充分

現(xiàn)在多核處理器已經(jīng)普及,在很多情況下也都會帶來性能的明顯提升。但是,由于具有名為全局解釋器鎖(global interpreter lock,GIL)的特性,Python的標(biāo)準(zhǔn)版本并沒有按照多內(nèi)核來進行設(shè)計。詳情請查看David Beazley、Larry Hastings等人關(guān)于GIL的討論視頻,或者訪問Python wiki里的GIL頁面。盡管用Python可以運行并發(fā)進程,但如果需要“開箱即用”的并發(fā)能力,Python可能并不合適。

1.4 學(xué)Python 3的理由

Python很多年前就已經(jīng)出現(xiàn)了,并且還在不斷發(fā)展。本書第1版基于Python 1.5.2,Python 2.x作為主流版本已經(jīng)持續(xù)了很多年。本書是基于Python 3.6的,并在Python 3.7的Alpha版中通過了測試。

Python 3最初被異想天開地命名為Python 3000,因為它是Python歷史上第一個打破向下兼容的版本。這就意味著,如果不做任何修改,在低版本Python中編寫的代碼可能無法在Python 3下運行。例如,在低版本的Python中,print語句不需要在參數(shù)外面加上括號:

            
              print "hello"
            
          

在Python 3中,print成了一個函數(shù),需要加上括號:

            
              print("hello")
            
          

也許有人會想:既然會破壞以前的代碼,為什么還要修改這種細(xì)節(jié)呢?正因為對任何語言而言這種改動都是件大事,所以Python的核心開發(fā)人員仔細(xì)考慮過這個問題。盡管Python 3中的變化會破壞與舊代碼的兼容性,但這些變化很小,好處卻很多。新版本Python的一致性更好,更具可讀性,歧義也更少了。Python 3并不是翻天巨變,而是深思熟慮之后的演進。核心開發(fā)人員也貼心地提供了代碼遷移方案和工具,可以安全高效地將以前的舊代碼遷移到Python 3中,后續(xù)章節(jié)中將會介紹。此外還可以利用Six和Future庫來簡化代碼轉(zhuǎn)換操作。

為什么要學(xué)Python 3呢?因為它是迄今為止最好的Python版本。隨著很多項目開始充分利用Python 3的改進之處,它將成為未來幾年的主流Python版本。自從Python 3推出之后,庫的移植工作一直在穩(wěn)步進行。到目前為止,很多受歡迎的庫都已支持Python 3了。事實上,根據(jù)Python就緒頁面所示(http://py3readiness.org),360個最流行的庫中已有359個被移植到Python 3中了。如果確實需要使用未被轉(zhuǎn)換過的庫,或者要使用基于Python 2建立的代碼,那就繼續(xù)使用Python 2.x吧。但如果是剛開始學(xué)習(xí)Python或新建項目,就使用Python 3吧。Python 3不僅更好用,而且是大勢所趨。

1.5 小結(jié)

  • Python是一種現(xiàn)代的高級語言,支持動態(tài)類型,帶有簡潔一致的語法和語義。
  • Python跨平臺且高度模塊化,即適用于快速開發(fā),也適用于大規(guī)模編程。
  • Python運行速度合理,還可以通過輕松擴展C或C++模塊進一步提升速度。
  • Python內(nèi)置了很多高級特性,如對象持久化存儲、高級散列表、可擴展類的語法和通用比較函數(shù)。
  • Python的庫包羅萬象,如數(shù)值計算、圖像處理、用戶界面和Web腳本處理。
  • 有異常活躍的Python社區(qū)提供有力的支持。

本文摘自剛剛上架的 《Python 快速入門 第3版》

?

Python為啥這么招人稀罕?_第2張圖片

《Python 快速入門 第3版》([美]娜奧米·塞德(Naomi,Ceder))【摘要 書評 試讀】- 京東圖書?item.jd.com Python為啥這么招人稀罕?_第3張圖片

  • Python軟件基金會主席作品!
  • 經(jīng)典Python入門書

本書是Python專業(yè)人士Naomi Ceder編寫的Python語言的綜合指南。她是一位經(jīng)驗豐富的教學(xué)者,她既能讓讀者關(guān)注語言的細(xì)節(jié),又能使其具備解決實際問題的能力。本書中配有大量貼切的示例和邊做邊學(xué)的習(xí)題,有助于讀者掌握每一個重要概念。無論讀者是要抓取網(wǎng)站內(nèi)容還是想玩轉(zhuǎn)嵌套元組,都會贊嘆本書的清晰、專注和對細(xì)節(jié)的重視。

本書主要內(nèi)容

● 明確涵蓋Python 3。

● 全面介紹核心庫、包和工具。

● 配備精深的習(xí)題。

● 新增5章與數(shù)據(jù)科學(xué)相關(guān)的內(nèi)容。


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 青娱乐九色 | 视频一区二区三区免费观看 | 国产成人综合AV在线观看不止 | 特黄特色大片免费高清视频 | 婷婷六月综合网 | 97色伦图片97综合影院 | 欧美视频在线免费播放 | 成人激情四射 | 色婷五月天 | 日韩一区精品 | 欧美精品18videosex性俄罗斯 | 偷偷狠狠的日日2020 | 午夜影院福利社 | 99久久99九九99九九九 | 一区二区三区视频免费 | 欧美日韩一区二区三区在线观看 | 国产精品久久久久久久四虎电影 | 亚洲精品乱码久久久久久按摩观 | 成a人片在线观看 | 天天射天天操天天干 | 天天草天天爱 | 三级精品| 91精品国产乱码久久久久久久久 | 九九99国产精品视频 | 禁忌二| 色呦呦在线免费观看 | www.伊人| 亚洲欧洲精品成人久久奇米网 | 国产日韩精品久久 | 成年女人免费v片 | 又黄又爽的成人免费网站 | 久久成人综合 | 五月婷婷六月爱 | 国内精品美女久久久久 | 亚洲一区二区三区影院 | www.av520| 久久99精品久久久久久琪琪 | 国产小视频在线高清播放 | 欧美大片在线免费观看 | 日韩高清一区二区 | 久草免费在线视频 |