什么是python?
Python是一種解釋型、面向?qū)ο蠼鹂场?dòng)態(tài)數(shù)據(jù)類型的高級(jí)程序設(shè)計(jì)語(yǔ)言,最初被設(shè)計(jì)用于編寫(xiě)自動(dòng)化腳本(shell)显熏,隨著版本的不斷更新和語(yǔ)言新功能的添加,越來(lái)越多被用于獨(dú)立的菇绵、大型項(xiàng)目的開(kāi)發(fā)。
Python由Guido van Rossum于1989年底發(fā)明镇眷,第一個(gè)公開(kāi)發(fā)行版發(fā)行于1991年咬最。
設(shè)計(jì)者開(kāi)發(fā)時(shí)總的指導(dǎo)思想是,對(duì)于一個(gè)特定的問(wèn)題欠动,只要有一種最好的方法來(lái)解決就好了永乌。這在由Tim Peters寫(xiě)的Python格言(稱為T(mén)he Zen of Python)里面表述為:There should be one-- and preferably only one --obvious way to do it. Python的作者有意的設(shè)計(jì)限制性很強(qiáng)的語(yǔ)法,使得不好的編程習(xí)慣(例如if語(yǔ)句的下一行不向右縮進(jìn))都不能通過(guò)編譯具伍。其中很重要的一項(xiàng)就是Python的縮進(jìn)規(guī)則翅雏。
python的優(yōu)缺點(diǎn):
優(yōu)點(diǎn):1、簡(jiǎn)單易學(xué):Python是一種代表簡(jiǎn)單主義思想的語(yǔ)言人芽。代碼非常簡(jiǎn)潔望几,完成同一個(gè)任務(wù),C語(yǔ)言要寫(xiě)1000行代碼萤厅,Java只需要寫(xiě)100行橄抹,而Python可能只要20行靴迫。閱讀一個(gè)良好的Python程序就感覺(jué)像是在讀英語(yǔ)一樣。它使你能夠?qū)W⒂诮鉀Q問(wèn)題而不是去搞明白語(yǔ)言本身楼誓。Python極其容易上手玉锌,有極其簡(jiǎn)單的說(shuō)明文檔? ?。2疟羹、速度快:Python 的底層是用 C 語(yǔ)言寫(xiě)的主守,很多標(biāo)準(zhǔn)庫(kù)和第三方庫(kù)也都是用 C 寫(xiě)的,運(yùn)行速度非掣蟛拢快丸逸。3、免費(fèi)剃袍、開(kāi)源:Python是FLOSS(自由/開(kāi)放源碼軟件)之一。使用者可以自由地發(fā)布這個(gè)軟件的拷貝捎谨、閱讀它的源代碼民效、對(duì)它做改動(dòng)、把它的一部分用于新的自由軟件中涛救。4畏邢、高層語(yǔ)言和解釋性:用Python語(yǔ)言編寫(xiě)程序的時(shí)候無(wú)需考慮諸如如何管理你的程序使用的內(nèi)存一類的底層細(xì)節(jié)。Python語(yǔ)言寫(xiě)的程序不需要編譯成二進(jìn)制代碼检吆。你可以直接從源代碼運(yùn)行 程序舒萎。5、可移植性:由于它的開(kāi)源本質(zhì)蹭沛,Python已經(jī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)。6辅甥、面向?qū)ο螅篜ython既支持面向過(guò)程的編程也支持面向?qū)ο蟮木幊獭?酝润、可擴(kuò)展性、可嵌入性:如果需要一段關(guān)鍵代碼運(yùn)行得更快或者希望某些算法不公開(kāi)璃弄,可以部分程序用C或C++編寫(xiě)要销,然后在Python程序中使用它們∠目椋可以把Python嵌入C/C++程序疏咐,從而向程序用戶提供腳本功能。8脐供、豐富的庫(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)的操作厅各。這被稱作Python的“功能齊全”理念径荔。除了標(biāo)準(zhǔn)庫(kù)以外贷盲,還有許多其他高質(zhì)量的庫(kù)蜕劝,如wxPython、Twisted和Python圖像庫(kù)等等宜鸯。9、規(guī)范的代碼:Python采用強(qiáng)制縮進(jìn)的方式使得代碼具有較好可讀性遮怜。而Python語(yǔ)言寫(xiě)的程序不需要編譯成二進(jìn)制代碼淋袖。
缺點(diǎn):1、單行語(yǔ)句和命令行輸出問(wèn)題:很多時(shí)候不能將程序連寫(xiě)成一行锯梁,如import sys;for i in sys.path:print i即碗。而perl和awk就無(wú)此限制,可以較為方便的在shell下完成簡(jiǎn)單程序陌凳,不需要如Python一樣剥懒,必須將程序?qū)懭胍粋€(gè).py文件。2合敦、獨(dú)特的語(yǔ)法這也許不應(yīng)該被稱為局限初橘,但是它用縮進(jìn)來(lái)區(qū)分語(yǔ)句關(guān)系的方式還是給很多初學(xué)者帶來(lái)了困惑。即便是很有經(jīng)驗(yàn)的Python程序員蛤肌,也可能陷入陷阱當(dāng)中壁却。3、運(yùn)行速度慢:這里是指與C和C++相比裸准。
用Python可以做什么?
從行業(yè)來(lái)說(shuō)赔硫,Python 源代碼同樣遵循 GPL(GNU General Public License)協(xié)議.是一種動(dòng)態(tài)的炒俱、面向?qū)ο蟮哪_本語(yǔ)言,主要應(yīng)用于以下領(lǐng)域:
1爪膊、系統(tǒng)編程:提供API(Application Programming Interface應(yīng)用程序編程接口)权悟,能方便進(jìn)行系統(tǒng)維護(hù)和管理,Linux下標(biāo)志性語(yǔ)言之一推盛,是很多系統(tǒng)管理員理想的編程工具峦阁。
2、圖形處理:有PIL耘成、Tkinter等圖形庫(kù)支持榔昔,能方便進(jìn)行圖形處理。
3瘪菌、數(shù)學(xué)處理:NumPy擴(kuò)展提供大量與許多標(biāo)準(zhǔn)數(shù)學(xué)庫(kù)的接口撒会。
4、文本處理:python提供的re模塊能支持正則表達(dá)式师妙,還提供SGML诵肛,XML分析模塊,許多程序員利用python進(jìn)行XML程序的開(kāi)發(fā)默穴。
5怔檩、數(shù)據(jù)庫(kù)編程:程序員可通過(guò)遵循Python DB-API(數(shù)據(jù)庫(kù)應(yīng)用程序編程接口)規(guī)范的模塊與Microsoft SQL Server褪秀,Oracle,Sybase薛训,DB2媒吗,MySQL、SQLite等數(shù)據(jù)庫(kù)通信许蓖。python自帶有一個(gè)Gadfly模塊蝴猪,提供了一個(gè)完整的SQL環(huán)境。
6膊爪、網(wǎng)絡(luò)編程:提供豐富的模塊支持sockets編程自阱,能方便快速地開(kāi)發(fā)分布式應(yīng)用程序。很多大規(guī)模軟件開(kāi)發(fā)計(jì)劃例如Zope米酬,Mnet 及BitTorrent. Google都在廣泛地使用它沛豌。
7、Web編程:應(yīng)用的開(kāi)發(fā)語(yǔ)言赃额,支持最新的XML技術(shù)加派。
8、多媒體應(yīng)用:Python的PyOpenGL模塊封裝了“OpenGL應(yīng)用程序編程接口”跳芳,能進(jìn)行二維和三維圖像處理芍锦。PyGame模塊可用于編寫(xiě)游戲軟件。
9飞盆、pymo引擎:PYMO全稱為python memories off娄琉,是一款運(yùn)行于Symbian S60V3,Symbian3,S60V5, Symbian3, Android系統(tǒng)上的AVG游戲引擎。因其基于python2.0平臺(tái)開(kāi)發(fā)吓歇,并且適用于創(chuàng)建秋之回憶(memories off)風(fēng)格的AVG游戲孽水,故命名為PYMO。
10城看、黑客編程:python有一個(gè)hack的庫(kù),內(nèi)置了你熟悉的或不熟悉的函數(shù)女气,但是缺少成就感。
從用戶角度來(lái)看测柠,python可以做日常任務(wù)炼鞠,比如自動(dòng)備份你的MP3;可以做網(wǎng)站鹃愤,很多著名的網(wǎng)站包括YouTube就是Python寫(xiě)的簇搅;可以做網(wǎng)絡(luò)游戲的后臺(tái),很多在線游戲的后臺(tái)都是Python開(kāi)發(fā)的软吐。Python也有不能干的事情瘩将,比如寫(xiě)操作系統(tǒng),這個(gè)只能用C語(yǔ)言寫(xiě);寫(xiě)手機(jī)應(yīng)用姿现,只能用Swift/Objective-C(針對(duì)iPhone)和Java(針對(duì)Android)肠仪;寫(xiě)3D游戲,最好用C或C++备典。
Python已經(jīng)成為最受歡迎的程序設(shè)計(jì)語(yǔ)言之一异旧。自從2004年以后,python的使用率呈線性增長(zhǎng)提佣。Python 2于2000年10月16日發(fā)布吮蛹,穩(wěn)定版本是Python 2.7。Python 3于2008年12月3日發(fā)布拌屏,不完全兼容Python 2潮针。2011年1月,它被TIOBE編程語(yǔ)言排行榜評(píng)為2010年度語(yǔ)言倚喂。