python概述
Python是一種面向?qū)ο蟮慕忉屝陀嬎銠C程序設(shè)計語言,由荷蘭人Guido van Rossum于1989年發(fā)明,第一個公開發(fā)行版發(fā)行于1991年。Python是純粹的自由軟件, 源代碼和解釋器CPython遵循 GPL(GNU General Public License)協(xié)議。Python語法簡潔清晰,特色之一是強制用空白符(white space)作為語句縮進(jìn)。
Python具有豐富和強大的庫。它常被昵稱為膠水語言,能夠把用其他語言制作的各種模塊(尤其是C/C++)很輕松地聯(lián)結(jié)在一起。常見的一種應(yīng)用情形是,使用Python快速生成程序的原型(有時甚至是程序的最終界面),然后對其中有特別要求的部分,用更合適的語言改寫,比如3D游戲中的圖形渲染模塊,性能要求特別高,就可以用C/C++重寫,而后封裝為Python可以調(diào)用的擴(kuò)展類庫。需要注意的是在您使用擴(kuò)展類庫時可能需要考慮平臺問題,某些可能不提供跨平臺的實現(xiàn)。
Python優(yōu)缺點
優(yōu)點:
簡單:Python是一種代表簡單主義思想的語言。閱讀一個良好的Python程序就感覺像是在讀英語一樣。它使你能夠?qū)W⒂诮鉀Q問題而不是去搞明白語言本身。
易學(xué):Python極其容易上手,因為Python有極其簡單的說明文檔 。
速度快:Python 的底層是用 C 語言寫的,很多標(biāo)準(zhǔn)庫和第三方庫也都是用 C 寫的,運行速度非常快。
免費、開源:Python是FLOSS(自由/開放源碼軟件)之一。使用者可以自由地發(fā)布這個軟件的拷貝、閱讀它的源代碼、對它做改動、把它的一部分用于新的自由軟件中。FLOSS是基于一個團(tuán)體分享知識的概念。
高層語言:用Python語言編寫程序的時候無需考慮諸如如何管理你的程序使用的內(nèi)存一類的底層細(xì)節(jié)。
可移植性:由于它的開源本質(zhì),Python已經(jīng)被移植在許多平臺上(經(jīng)過改動使它能夠工作在不同平臺上)。這些平臺包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE、PocketPC、Symbian以及Google基于linux開發(fā)的android平臺。
解釋性:一個用編譯性語言比如C或C++寫的程序可以從源文件(即C或C++語言)轉(zhuǎn)換到一個你的計算機使用的語言(二進(jìn)制代碼,即0和1)。這個過程通過編譯器和不同的標(biāo)記、選項完成。
運行程序的時候,連接/轉(zhuǎn)載器軟件把你的程序從硬盤復(fù)制到內(nèi)存中并且運行。而Python語言寫的程序不需要編譯成二進(jìn)制代碼。你可以直接從源代碼運行 程序。
在計算機內(nèi)部,Python解釋器把源代碼轉(zhuǎn)換成稱為字節(jié)碼的中間形式,然后再把它翻譯成計算機使用的機器語言并運行。這使得使用Python更加簡單。也使得Python程序更加易于移植。
面向?qū)ο螅篜ython既支持面向過程的編程也支持面向?qū)ο蟮木幊?。在“面向過程”的語言中,程序是由過程或僅僅是可重用代碼的函數(shù)構(gòu)建起來的。在“面向?qū)ο蟆钡恼Z言中,程序是由數(shù)據(jù)和功能組合而成的對象構(gòu)建起來的。
可擴(kuò)展性:如果需要一段關(guān)鍵代碼運行得更快或者希望某些算法不公開,可以部分程序用C或C++編寫,然后在Python程序中使用它們。
可嵌入性:可以把Python嵌入C/C++程序,從而向程序用戶提供腳本功能。
豐富的庫:Python標(biāo)準(zhǔn)庫確實很龐大。它可以幫助處理各種工作,包括正則表達(dá)式、文檔生成、單元測試、線程、數(shù)據(jù)庫、網(wǎng)頁瀏覽器、CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV文件、密碼系統(tǒng)、GUI(圖形用戶界面)、Tk和其他與系統(tǒng)有關(guān)的操作。這被稱作Python的“功能齊全”理念。除了標(biāo)準(zhǔn)庫以外,還有許多其他高質(zhì)量的庫,如wxPython、Twisted和Python圖像庫等等。
規(guī)范的代碼:Python采用強制縮進(jìn)的方式使得代碼具有較好可讀性。而Python語言寫的程序不需要編譯成二進(jìn)制代碼。
缺點:
單行語句和命令行輸出問題:很多時候不能將程序連寫成一行,如import sys;for i in sys.path:print i。而perl和awk就無此限制,可以較為方便的在shell下完成簡單程序,不需要如Python一樣,必須將程序?qū)懭胍粋€.py文件。
獨特的語法
這也許不應(yīng)該被稱為局限,但是它用縮進(jìn)來區(qū)分語句關(guān)系的方式還是給很多初學(xué)者帶來了困惑。即便是很有經(jīng)驗的Python程序員,也可能陷入陷阱當(dāng)中。
運行速度慢:這里是指與C和C++相比。
python適合做什么開發(fā)
Python不僅僅是一個設(shè)計優(yōu)秀的程序語言,它能夠完成現(xiàn)實中的各種任務(wù),你可以在任何場合應(yīng)用Python,從網(wǎng)站和游戲開發(fā)到機器人和航天飛機控制。
1、python可以用于系統(tǒng)編程。Python對操作系統(tǒng)服務(wù)的內(nèi)置接口,使其成為編寫可移植的維護(hù)操作系統(tǒng)的管理工具和部件(有時也被稱為Shell工具)的理想工具。
Python程序可以搜索文件和目錄樹,可以運行其他程序,用進(jìn)程或線程進(jìn)行并行處理等等。
2、python可以用于用戶圖形接口。Python的簡潔以及快速的開發(fā)周期十分適合開發(fā)GUI程序。
此外,基于C++平臺的工具包wxPythonGUIAPI可以使用Python構(gòu)建可移植的GUI。諸如PythonCard和Dabo等一些高級工具包是構(gòu)建在wxPython和Tkinter的基礎(chǔ)API之上的。通過適當(dāng)?shù)膸欤憧梢允褂闷渌腉UI工具包,例如,Qt、GTK、MFC和Swing等。
3、python可以用于Internet腳本。Python提供了標(biāo)準(zhǔn)Internet模塊,使Python能夠廣泛地在多種網(wǎng)絡(luò)任務(wù)中發(fā)揮作用,無論是在服務(wù)器端還是在客戶端都是如此。而且網(wǎng)絡(luò)上還可以獲得很多使用Python進(jìn)行Internet編程的第三方工具此外,Python涌現(xiàn)了許多Web開發(fā)工具包,例如,Django、TurboGears、Pylons、Zope和WebWare,使Python能夠快速構(gòu)建功能完善和高質(zhì)量的網(wǎng)站。
4、python可以用于組件集成。在介紹Python作為控制語言時,曾涉及它的組件集成的角色。Python可以通過C/C++系統(tǒng)進(jìn)行擴(kuò)展,并能夠嵌套C/C++系統(tǒng)的特性,使其能夠作為一種靈活的粘合語言,腳本化處理其他系統(tǒng)和組件的行為。
例如,將一個C庫集成到Python中,能夠利用Python進(jìn)行測試并調(diào)用庫中的其他組件;將Python嵌入到產(chǎn)品中,在不需要重新編譯整個產(chǎn)品或分發(fā)源代碼的情況下,能夠進(jìn)行產(chǎn)品的單獨定制。
5、python能用于數(shù)據(jù)庫編程。對于傳統(tǒng)的數(shù)據(jù)庫需求,Python提供了對所有主流關(guān)系數(shù)據(jù)庫系統(tǒng)的接口,Python定義了一種通過Python腳本存取SQL數(shù)據(jù)庫系統(tǒng)的可移植的數(shù)據(jù)庫API,這個API對于各種底層應(yīng)用的數(shù)據(jù)庫系統(tǒng)都是統(tǒng)一的。
所以一個寫給自由軟件MySQL 系統(tǒng)的腳本在很大程度上不需改變就可以工作在其他系統(tǒng)上(例如,Oracle )-- 你僅需要將底層的廠商接口替換掉就可以實現(xiàn)。
6.python 可以用于快速原型。對于Python 程序來說,使用Python 或C編寫的組件看起來都是一樣的。正因為如此,我們可以在一開始利用Python 做系統(tǒng)原型,之后再將組件移植到C或C++ 這樣的編譯語言上。
7.python 可以用于數(shù)值計算和科學(xué)計算編程。我們之前提到過的NumPy 數(shù)值編程擴(kuò)展包括很多高級工具,通過將Python 與出于速度考慮而使用編譯語言編寫的數(shù)值計算的常規(guī)代碼進(jìn)行集成,其他一些數(shù)值計算工具為Python 提供了動畫、3D 可視化、并行處理等功能的支持。
8.python 可以用于游戲、圖像、人工智能、XML 、機器人等。 Python 的應(yīng)用領(lǐng)域很多,遠(yuǎn)比這里提到的多得多。 例如,可以利用pygame 系統(tǒng)使用Python 對圖形和游戲進(jìn)行編程;用PIL 和其他的一些工具進(jìn)行圖像處理;用PyRo 工具包進(jìn)行機器人控制編程。
Python語言在未來的發(fā)展前景
Python語言在學(xué)術(shù)上非常受歡迎,不是計算機專業(yè)的人,很多都在學(xué)習(xí)Python。因為這個語言的前景是不可限量的,而且他的語法非常的簡單易懂,這就讓很多一些提及編程就恐慌的人減去了擔(dān)心,現(xiàn)在已經(jīng)是一人應(yīng)該掌握一門編程語言的時代,很多不是程序員的人們,利用自己寫的簡單的小程序,讓自己生活變得精彩起來,不管是因為興趣,還是其他,生活好像變得美好起來,有了一些追求。
發(fā)展前景一:Linux運維
Linux運維是必須而且一定要掌握Python語言,Python是一門非常NB的編程語言,它可以滿足Linux運維工程師的工作需求提升效率,總而提升自己的能力,運維工程師需要自己獨立開發(fā)一個完整的自動化系統(tǒng)時,這個時候才是真正價值的體現(xiàn),才能證明自身的能力。
發(fā)展前景二:Python Web網(wǎng)站工程師
我們都知道Web一直都是不可忽視的存在,我們離不開網(wǎng)絡(luò),離不開Web,利用Python的框架可以做網(wǎng)站,而且都是一些精美的前端界面,還有我們需要掌握一些數(shù)據(jù)的應(yīng)用。
發(fā)展前景三:Python自動化測試
大家都知道,就是Python語言對測試的幫助是非常大的,自動化測試中Python語言的用途很廣,可以說Python太強大,掌握和熟悉自動化的流程,方法和我們總使用的各個模板,到現(xiàn)在為止,我了解的Python使用最多的應(yīng)該是自動化測試。
發(fā)展前景四:數(shù)據(jù)分析
我們都知道現(xiàn)在來臨了大數(shù)據(jù)的時代,數(shù)據(jù)可以說明一切問題的原因,現(xiàn)在很多做數(shù)據(jù)分析的不是原來那么簡單,Python語言成為了做數(shù)據(jù)分析師的第一首選,它同時可以給工作帶來很大的效率。
發(fā)展前景五:人工智能
我們都知道谷歌制作出了的機器人戰(zhàn)勝了一個圍棋大師,這個就是目前剛出頭的人工智能,當(dāng)然我們的人工智能時代還沒有到來,如果這天來了,生活和世界將會發(fā)生翻天覆地的變化,而且現(xiàn)在發(fā)展這么快,人工智能的時代不會太遠(yuǎn)。
評論
查看更多