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