蔡敏
摘 要:Python這個(gè)概念非常大,它的定位是“計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言”,從它的特征來(lái)看,是一種動(dòng)態(tài)的、“面向?qū)ο蟆钡恼Z(yǔ)言,同時(shí)也是一門(mén)“解釋型”語(yǔ)言,因?yàn)橄鄬?duì)簡(jiǎn)單,對(duì)于初學(xué)者Python是比較容易上手的。Python的語(yǔ)法更接近于自然語(yǔ)言,偽代碼本質(zhì)是它最大的優(yōu)點(diǎn)之一。通過(guò)解釋器執(zhí)行basic程序可以讓計(jì)算機(jī)讀懂指令。Python的用途較為廣泛,文章著重從其Web開(kāi)發(fā)方面進(jìn)行分析探討。
關(guān)鍵詞:Python語(yǔ)言;Web開(kāi)發(fā);應(yīng)用領(lǐng)域
1 Python簡(jiǎn)介
對(duì)于當(dāng)前廣泛使用的Python來(lái)說(shuō),Python語(yǔ)言是解釋型語(yǔ)言,但帶有一些編譯型特征。Python是一種屬于計(jì)算機(jī)程序設(shè)計(jì)的語(yǔ)言,它最初的時(shí)候被設(shè)計(jì)用于編寫(xiě)自動(dòng)化腳本,隨著版本的不斷更新和語(yǔ)言新功能的添加,它越來(lái)越多被用于一些獨(dú)立的、比較大型的開(kāi)發(fā)[1]。
Python具有十分重要的作用,其中源代碼以及解釋器C Python必須要遵循相關(guān)的GNU通用公共許可協(xié)議(GNU General Public License,GPL)協(xié)議,這是十分必要的,只有這樣才能夠促進(jìn)其更好的發(fā)展,能夠使其得到良好的運(yùn)行。另外,Python的語(yǔ)法比較簡(jiǎn)潔清晰,讓人容易理解;除此之外,Python還具有自己獨(dú)特的特色就是它是強(qiáng)制要求用空白符來(lái)實(shí)現(xiàn)語(yǔ)句縮進(jìn)。
Python具有一個(gè)十分豐富的庫(kù)。另外它也可以叫作膠水語(yǔ)言,它能夠把這些各種模塊更好地組合在一起。人們可以使用Python比較快速地生成程序的原型,從而對(duì)其有特殊要求的部分進(jìn)行應(yīng)用,比如3D游戲?qū)D形性能要求相對(duì)比較高,我們可以渲染模塊,然后用C/C++來(lái)進(jìn)行相關(guān)的重寫(xiě),以此來(lái)實(shí)現(xiàn)更好的應(yīng)用。但是在運(yùn)用的時(shí)候也需要考慮到很多問(wèn)題,比如平臺(tái)問(wèn)題[2]。
2 Python的特點(diǎn)
(1)Python具有自己獨(dú)特的特點(diǎn),在它的開(kāi)發(fā)中是依靠C語(yǔ)言來(lái)進(jìn)行的,但是Python去掉了C語(yǔ)言中比較復(fù)雜的指針部分,簡(jiǎn)化了自身的語(yǔ)法。
(2)Python面對(duì)對(duì)象的特征比較強(qiáng),并且其對(duì)象的實(shí)現(xiàn)也更加容易。
(3)Python代碼塊的隔代碼是利用空格或者制表符縮進(jìn)的方式來(lái)實(shí)現(xiàn)的。
(4)Python的保留字很少,只有13個(gè)并且沒(méi)有分號(hào)、begin、end等各種各樣的標(biāo)記。
(5)它是一種強(qiáng)類(lèi)型的語(yǔ)言。
3 Python的應(yīng)用領(lǐng)域
3.1 數(shù)據(jù)分析與處理
通常情況下,Python被用來(lái)做數(shù)據(jù)分析。軟件學(xué)習(xí)資源出版商Packt Publishing在2018年度報(bào)告中指出,Python是數(shù)據(jù)專(zhuān)業(yè)人士使用最廣泛的編程語(yǔ)言,很多人將其列為解決數(shù)據(jù)分析的頭號(hào)語(yǔ)言。其中著名的Pandas庫(kù)為Python提供了高性能處理的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)分析工具。雖然R語(yǔ)言也提供了大量的包應(yīng)用于數(shù)據(jù)分析領(lǐng)域,這些包大多專(zhuān)門(mén)用來(lái)完成特定的任務(wù),比如數(shù)據(jù)的可視化,連續(xù)變量回歸和模型驗(yàn)證,但Python語(yǔ)言更適合一些具有編程基礎(chǔ)的數(shù)據(jù)分析師,究其原因主要是Python代碼的優(yōu)秀可讀性,這是R語(yǔ)言非標(biāo)準(zhǔn)代碼無(wú)法實(shí)現(xiàn)的。Python語(yǔ)言在爬蟲(chóng)、自動(dòng)化運(yùn)維、游戲等方面應(yīng)用廣泛,這些優(yōu)點(diǎn)使得Python具有融合各個(gè)業(yè)務(wù)的優(yōu)點(diǎn),用一門(mén)技術(shù)解決所有業(yè)務(wù)服務(wù)問(wèn)題,大大提高數(shù)據(jù)分析效率[3]。
3.2 人工智能應(yīng)用
Python在人工智能領(lǐng)域也有一定的發(fā)展前景。人工智能要求的是即時(shí)性,Python的AI庫(kù)提供了強(qiáng)大的支持,包括 SimpleAI,pyDatalog,EasyAI,和AIMA。它還提供了一些機(jī)器學(xué)習(xí)庫(kù),比如PyBrain,PyML,scikit-learn,MDP-Toolkit等。Python優(yōu)質(zhì)的文檔,簡(jiǎn)單易學(xué)的語(yǔ)法,許多圖像加強(qiáng)庫(kù)像Python Imaging Libary,VTK和Maya 3D可視化工具包,語(yǔ)言的可移植、可擴(kuò)展等特點(diǎn),都使得Python成為人工智能首選的編程語(yǔ)言。
3.3 Web開(kāi)發(fā)與應(yīng)用
在Python的應(yīng)用中,它經(jīng)常被用于Web來(lái)進(jìn)行相關(guān)的開(kāi)發(fā)。并且為了更好地協(xié)調(diào)Http服務(wù)器與基于Python的Web程序之間的通信,Python定義了WSGI來(lái)作為比較標(biāo)準(zhǔn)的應(yīng)用接口。其中就包括一些Web框架,比如Django,Turbo Gears以及web2py等。這具有很大的優(yōu)勢(shì),它能夠幫助程序員更加輕松地對(duì)比較復(fù)雜的Web程序進(jìn)行開(kāi)發(fā)和管理。所以我們一定要對(duì)此有一個(gè)清楚的認(rèn)識(shí)并對(duì)此引起足夠的重視。
基于Python語(yǔ)言開(kāi)發(fā)的Web框架非常多,很多著名的網(wǎng)站如YouTube,Dropbox,豆瓣等均為Python開(kāi)發(fā)。Google公司的網(wǎng)絡(luò)搜索系統(tǒng)也廣泛使用Python語(yǔ)言。典型Web框架有Django、Flask等,其中的Python+Django架構(gòu)應(yīng)用非常廣,可以快速搭建用戶需要的Web服務(wù)。Python還擁有很多免費(fèi)數(shù)據(jù)函數(shù)庫(kù)、免費(fèi)Web網(wǎng)頁(yè)模板系統(tǒng),可以實(shí)現(xiàn)Web開(kāi)發(fā)[4]。
4 Python語(yǔ)言的Web開(kāi)發(fā)主要框架
4.1 Django
Django具有很大的重要性,它是一個(gè)屬于開(kāi)放源代碼的Web應(yīng)用框架,它主要由Python而寫(xiě)成的。在它的應(yīng)用中主要是采用了MVC的框架模式,這種模式具有十分重要的作用。在最初Django主要是被用來(lái)開(kāi)發(fā)一些網(wǎng)站并且這些網(wǎng)站都是以新聞內(nèi)容為主。
4.2 Flask
Flask是一個(gè)使用Python來(lái)進(jìn)行編寫(xiě)的Web應(yīng)用框架,它具有自己獨(dú)特的作用,是一種輕量級(jí)的應(yīng)用框架。其WSGI工具箱主要是采用Werkzeug,而模板引擎是使用Jinja2來(lái)進(jìn)行,F(xiàn)lask是使用BSD授權(quán)的。
4.3 Tornado
Tornado是一種Web服務(wù)器軟件的開(kāi)源版本。Tornado和現(xiàn)在的主流Web服務(wù)器框架(包括大多數(shù)Python的框架)有著十分明顯的區(qū)別,它是一種非阻塞式的服務(wù)器,并且速度也比較快。
4.4 CherryPy
CherryPy是一種用于Python的、簡(jiǎn)單而非常有用的Web框架,其主要作用是以盡可能少的操作將Web服務(wù)器與Python代碼連接,其功能包括內(nèi)置的分析功能、靈活的插件系統(tǒng)以及一次運(yùn)行多個(gè)HTTP服務(wù)器的功能,可運(yùn)行在最新版本的Python,Jython,Android上。
5 Python語(yǔ)言在Web應(yīng)用中的優(yōu)點(diǎn)
5.1 Python是一種動(dòng)態(tài)的語(yǔ)言
Python是一種比較高健壯的編程語(yǔ)言,這也是它流行的一個(gè)重要原因。而且Python是一種面向?qū)ο笮偷恼Z(yǔ)言,它包括許多豐富的類(lèi)庫(kù)和數(shù)據(jù)類(lèi)型,通過(guò)這些數(shù)據(jù)來(lái)進(jìn)行交互,從而使其能夠得到更好的應(yīng)用。
5.2 Python是一種萬(wàn)能的計(jì)算機(jī)程序語(yǔ)言
Python是萬(wàn)能的,這也是它流行的另一個(gè)原因。并且Python需要具有很強(qiáng)的實(shí)用性,它能夠在很多流行的操作系統(tǒng)中運(yùn)行。比如在Linux,Unix,Mac,Windows或者是Amiga中等來(lái)進(jìn)行應(yīng)用。除此之外,Python還能夠在流行的手機(jī)平臺(tái)以及微軟平臺(tái)中來(lái)進(jìn)行運(yùn)行,在當(dāng)今社會(huì)中Python是隨處可見(jiàn)的。
5.3 有關(guān)Python的創(chuàng)建歷史
Python具有十分豐富的背景。它在80年代得到創(chuàng)建,而它第一個(gè)版本的出現(xiàn)則是在1989年早期的時(shí)候。其次,它的設(shè)計(jì)是簡(jiǎn)單并且容易讀取的。當(dāng)時(shí)互聯(lián)網(wǎng)還處于一個(gè)嬰兒時(shí)期,而Python在當(dāng)時(shí)還是一種全新的語(yǔ)言,到了2000年,Python 2.0就開(kāi)始出現(xiàn)在人們的視野當(dāng)中了,并且它具備了許多新的功能,比如支持Unicode和垃圾回收器等,并且每種功能都具有十分重要的意義[5]。
6 結(jié)語(yǔ)
Python具有很多的優(yōu)點(diǎn),比如它容易開(kāi)發(fā)并且部署很快,變更起來(lái)比較容易,代碼量小所以拋棄起來(lái)也很容易以及不容易背上歷史負(fù)擔(dān)等。所以我們一定要對(duì)Python程序語(yǔ)言有一個(gè)清楚的認(rèn)識(shí),了解它的應(yīng)用和具體特征以及各方面的優(yōu)勢(shì),從而使其能夠得到更好的應(yīng)用,不斷促進(jìn)我國(guó)計(jì)算機(jī)行業(yè)的更好發(fā)展。
選擇哪種編程語(yǔ)言做Web開(kāi)發(fā)必須要考慮眾多語(yǔ)言中哪個(gè)更適合后端業(yè)務(wù)流程。如果是個(gè)相對(duì)計(jì)算密集型的、需要多線程的,那么就應(yīng)該慎用Python,或者提前將計(jì)算密集的部分拆出去單獨(dú)組成服務(wù)。如果是業(yè)務(wù)本身就比較繁雜、變更比較頻繁的,Python和PHP這樣的語(yǔ)言也更加適合。
[參考文獻(xiàn)]
[1]朱贇.Python語(yǔ)言的Web開(kāi)發(fā)應(yīng)用[J].電腦知識(shí)與技術(shù),2017(32):95-96.
[2]王冉陽(yáng).基于Django和Python的Web開(kāi)發(fā)[J].電腦編程技巧與維護(hù),2009(2):56-58.
[3]郭力子.基于開(kāi)源的Web開(kāi)發(fā)架構(gòu)—ZOPE/Python[J].計(jì)算機(jī)時(shí)代,2008(7):9-11.
[4]陳琳,李容.基于動(dòng)態(tài)Web的Python多線程空氣質(zhì)量數(shù)據(jù)程序設(shè)計(jì)[J].成都信息工程學(xué)院學(xué)報(bào),2016(2):180-184.
[5]劉鵬.PHPWeb應(yīng)用程序安全性研究及安全漏洞檢測(cè)工具開(kāi)發(fā)[D].西安:西安電子科技大學(xué),2011.