史夢楚
【摘要】 隨著電腦和互聯(lián)網(wǎng)的發(fā)展和普及,很多人可以自己編寫程序。Web開發(fā)人員編寫網(wǎng)頁是在編程,動畫創(chuàng)作人員使用Flash是在編程,系統(tǒng)管理員編寫管理腳本是在編程,編程無處不在。編程的語言也很多現(xiàn)在:JAVA、C++、Matlab、Python等。而Python相對其他語言更加簡單,適用性更廣。本文通過對Python簡單介紹,探討了Python的應用領域及優(yōu)缺點,并且通過Python與JAVA比較來更好的了解Python。
【關(guān)鍵字】 Python JAVA C++
一、Python 簡史
Python是由Guido van Rossum在1989年圣誕節(jié)期間開發(fā)的一種腳本語言。Python1.0 發(fā)布與1991年,并沒有像Java引起巨大轟動。Python 2.0發(fā)布于2000 年,實現(xiàn)了完整的垃圾回收,而且支持Unicode。Python社區(qū)也逐步完善,對Python 的發(fā)展和推廣起到了非常重要的作用。到2008年,Python 3.0正式發(fā)布,Python已經(jīng)成為一種集支持命令式程序設計、函數(shù)式編程、面向?qū)ο蟪绦蛟O計、面向側(cè)面的程序設計、泛型編程多種編程范式于一身的腳本語言。
二、Python 的應用領域
Python的應用范圍很廣,遍及幾乎所有的程序設計領域,是一種名副其實“膠水語言”。Python在GUI,Web框架,系統(tǒng)編程,自然語言處理領域都有應用。特別的,Python在網(wǎng)頁爬蟲、數(shù)據(jù)挖掘、科學計算、機器學習等領域已經(jīng)取得了不可替代的作用。網(wǎng)絡爬蟲:大部分的爬蟲都是使用Python實現(xiàn)的。Python原生的urllib簡單易用。Scrapy更為強大,和rq/queue結(jié)合使用可以很容易地構(gòu)造一個分布式的爬蟲。數(shù)據(jù)挖掘和科學計算:Python 已經(jīng)成為數(shù)據(jù)挖掘領域的主力語言,形成了科學計算生態(tài)系統(tǒng)。包括數(shù)值計算庫SciPy、符號計算庫,SymPy、繪圖庫Matplotlib 和各種scikit項目(機器學習、統(tǒng)計建模、圖像處理數(shù)據(jù)分析)。這些庫提供了一個強大嚴謹簡單的數(shù)學環(huán)境。
三、 Python語言的優(yōu)點
Python語言優(yōu)雅、簡單、實用。與另一種流行的腳本語言Perl比較,Python語言最鮮明的特點是其簡潔、易讀的語法。
Python語言借鑒了很多其他編程語言的優(yōu)點,并把它們用非常簡單、協(xié)調(diào)的語法融合在一起。Python語言內(nèi)置了很多開發(fā)人員期望的并作為主流語言都必備的基礎工具和特性,使其在安裝后就能立即開始使用。Python語言有一個顯著的優(yōu)點是自帶電池(Batteries Included),意指其豐富完善的類庫;除此之外,Python語言本身還帶有一個可視化的集成開發(fā)環(huán)境、一個Tkinter可視化類庫、一個性能優(yōu)化器和許多其他工具。在其他語言中,這些都是需要額外獲取的。這些工具在大多數(shù)情況下能滿足一個專業(yè)開發(fā)人員的大部分需求。對于初學者而言,這些工具完全能滿足其編程需求。
四、Python語言的缺點
作為一種動態(tài)語言,Python的性能一直為人所詬病。實際上,Python的執(zhí)行與一般腳本語言還是有很大的區(qū)別的。Python也有自己的Python Virtual Machine,.py 文件會被先編譯成Python的byte code,再通過虛擬機執(zhí)行。Byte code在Python 虛擬機里對應的是PyCode Object對象。加載模塊時,模塊對應的PyCode Object 對象就被寫入了.pyc 文件,整個虛擬機模擬x86上程序的執(zhí)行。這種執(zhí)行方式比一般的虛擬機如JVM 更為高級、靈活和抽象,與此同時帶來的就是性能的下降。當然,Python 也有一些其他的缺點,比如很容易被反編譯,可能不適合于大型的商業(yè)項目。社區(qū)沒有Ruby統(tǒng)一,類的命名比較混亂。然而這些缺點并沒有帶來太多的問題,隨著Python 的進一步發(fā)展,在可以預見的未來這些問題必將解決。
五、Python語言與Java語言的比較
(1) Hello,World。對于初學者來說,Python語言和Java語言最大的區(qū)別就是:Python語言是解釋型語言,任何語句都可以在命令行中立即執(zhí)行并得到反饋;而Java語言則是編譯型語言,程序運行需要經(jīng)過傳統(tǒng)的“編輯/編譯/執(zhí)行”流程,在交互性方面沒有Python語言方便。Java語言是面向?qū)I(yè)人員設計的,所以這些流程對專業(yè)人員來說不是個很大的問題;但對初學者來說,Java語言往往顯得不夠友好,有時甚至令人迷惑。(2)空格。Python語言使用縮進來定義代碼塊,這一點很特別,尤其是對于有經(jīng)驗的開發(fā)人員來說。Java語言使用大括號“{}”來顯示的定義一段代碼塊的開始和結(jié)束,Python語言則不同,它完全依賴縮進來劃分代碼塊。使用縮進的最大優(yōu)點是編譯器強制保證了代碼的規(guī)范性,在嚴格要求的代碼縮進之下,Python語言代碼非常整齊規(guī)范,可讀性很高。在其他語言中,縮進的選擇是開發(fā)人員的事情,每個人都可以按自己的喜好定制,但在Python語言中,這已經(jīng)成為語言本質(zhì)的一部分。
結(jié)論:自Python1989 年誕生至今,它逐漸被廣泛應用于處理系統(tǒng)運維,Web開發(fā)和數(shù)據(jù)挖掘機器學習等領域。Python 的簡單易學和強大的功能使得它目前已經(jīng)成為了最流行的編程語言之一,眾多國外大學都已經(jīng)將Python作為CS專業(yè)學生的第一門語言。在可以預見的未來,Python 必將成為一種通用而強大的語言。
參 考 文 獻
[1](挪威)Magnus Lie Hetland Python基礎教程[M].人民郵電出版社,2010.
[2]管華.對當今Python快速發(fā)展的研究與展望[J].信息系統(tǒng)工程.2015(12).