顯著的優(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)镻ython語(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)稱自帶電池(BatteryIncluded),寓意是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)镻ython語(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)镻ython特別容易和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全局解釋器鎖(GlobalInterpreterLock),當(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)行我們的程序。
Python2與Python3不兼容:如果一個(gè)普通的軟件或者庫(kù),不能夠做到后向兼容,那么,它會(huì)被用戶無(wú)情的拋棄了。在Python中,一個(gè)槽點(diǎn)是Python2與Python3不兼容。因?yàn)镻ython沒(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)題的一把利劍。
以上內(nèi)容為大家介紹了Python那些不得不說(shuō)的優(yōu)缺點(diǎn),希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。http://www.dietsnews.net/