Python

目前Python主要應(yīng)用領(lǐng)域:
云計(jì)算: 云計(jì)算最火的語言, 典型應(yīng)用OpenStack
WEB開發(fā): 眾多優(yōu)秀的WEB框架,眾多大型網(wǎng)站均為Python開發(fā),Youtube, Dropbox, 豆瓣。。。, 典型WEB框架有Django
科學(xué)運(yùn)算、人工智能: 典型庫NumPy, SciPy, Matplotlib, Enthought librarys,pandas
系統(tǒng)運(yùn)維: 運(yùn)維人員必備語言
金融:量化交易,金融分析,在金融工程領(lǐng)域,Python不但在用,且用的最多,而且重要性逐年提高。原因:作為動(dòng)態(tài)語言的Python,語言結(jié)構(gòu)清晰簡單,庫豐富,成熟穩(wěn)定,科學(xué)計(jì)算和統(tǒng)計(jì)分析都很牛逼,生產(chǎn)效率遠(yuǎn)遠(yuǎn)高于c,c++,java,尤其擅長策略回測
圖形GUI: PyQT, WxPython,TkInter
Python一些著名的應(yīng)用
Pylons-Web應(yīng)用框架
Zope- 應(yīng)用服務(wù)器
Plone- 內(nèi)容管理系統(tǒng)
Django- 鼓勵(lì)快速開發(fā)的Web應(yīng)用框架
Uliweb- 國人開發(fā)的輕量級Web框架
TurboGears- 另一個(gè)Web應(yīng)用快速開發(fā)框架
Twisted–Python的網(wǎng)絡(luò)應(yīng)用程序框架
Python Wikipedia Robot Framework- MediaWiki的機(jī)器人程序
MoinMoinWiki- Python寫成的Wiki程序
flask- Python 微Web框架
tornado- 非阻塞式服務(wù)器
Webpy- Python 微Web框架
Bottle- Python 微Web框架
EVE- 網(wǎng)絡(luò)游戲EVE大量使用Python進(jìn)行開發(fā)
Reddit - 社交分享網(wǎng)站
Dropbox - 文件分享服務(wù)
Pylons - Web應(yīng)用框架
TurboGears - 另一個(gè)Web應(yīng)用快速開發(fā)框架
Fabric - 用于管理成百上千臺(tái)Linux主機(jī)的程序庫
Trac - 使用Python編寫的BUG管理系統(tǒng)
Mailman - 使用Python編寫的郵件列表軟件
Mezzanine - 基于Django編寫的內(nèi)容管理系統(tǒng)
Blender - 以C與Python開發(fā)的開源3D繪圖軟件
解釋器
計(jì)算機(jī)不能直接理解任何除機(jī)器語言以外的語言,所以必須要把程序員所寫的程序語言翻譯成機(jī)器語言,計(jì)算機(jī)才能執(zhí)行程序。將其他語言翻譯成機(jī)器語言的工具,被稱為編譯器
編譯器翻譯的方式有兩種:一個(gè)是編譯,另外一個(gè)是解釋。兩種方式之間的區(qū)別在于翻譯時(shí)間點(diǎn)的不同。當(dāng)編譯器以解釋方式運(yùn)行的時(shí)候,也稱之為解釋器

編譯型語言:程序在執(zhí)行之前需要一個(gè)專門的編譯過程,把程序編譯成為機(jī)器語言的文件,運(yùn)行時(shí)不需要重新翻譯,直接使用編譯的結(jié)果就行了。程序執(zhí)行效率高,依賴編譯器,跨平臺(tái)性差些。如 C、C++
解釋型語言:解釋型語言編寫的程序不進(jìn)行預(yù)先編譯,以文本方式存儲(chǔ)程序代碼,會(huì)將代碼一句一句直接運(yùn)行。在發(fā)布程序時(shí),看起來省了道編譯工序,但是在運(yùn)行程序的時(shí)候,必須先解釋再運(yùn)行

編譯型語言和解釋型語言對比
速度—— 編譯型語言比解釋型語言執(zhí)行速度快
跨平臺(tái)性—— 解釋型語言比編譯型語言跨平臺(tái)性好
Python 的設(shè)計(jì)目標(biāo)
1999 年,吉多·范羅蘇姆向 DARPA 提交了一條名為 “Computer Programming for Everybody” 的資金申請,并在后來說明了他對 Python 的目標(biāo):
一門簡單直觀的語言并與主要競爭者一樣強(qiáng)大
開源,以便任何人都可以為它做貢獻(xiàn)
代碼像純英語那樣容易理解
適用于短期開發(fā)的日常任務(wù)
Python 特點(diǎn)
Python 是完全面向?qū)ο蟮恼Z言
函數(shù)、模塊、數(shù)字、字符串都是對象,在 Python 中一切皆對象
完全支持繼承、重載、多重繼承
支持重載運(yùn)算符,也支持泛型設(shè)計(jì)
Python擁有一個(gè)強(qiáng)大的標(biāo)準(zhǔn)庫,Python 語言的核心只包含數(shù)字、字符串、列表、字典、文件等常見類型和函數(shù),而由 Python 標(biāo)準(zhǔn)庫提供了系統(tǒng)管理、網(wǎng)絡(luò)通信、文本處理、數(shù)據(jù)庫接口、圖形系統(tǒng)、XML 處理等額外的功能
Python 社區(qū)提供了大量的第三方模塊,使用方式與標(biāo)準(zhǔn)庫類似。它們的功能覆蓋科學(xué)計(jì)算、人工智能、機(jī)器學(xué)習(xí)、Web 開發(fā)、數(shù)據(jù)庫接口、圖形系統(tǒng)Python 的優(yōu)缺點(diǎn)
優(yōu)點(diǎn)
1.簡單:Python是一種代表簡單主義思想的語言。閱讀一個(gè)良好的Python程序就感覺像是在讀英語一樣。它使你能夠?qū)W⒂诮鉀Q問題而不是去搞明白語言本身。
2.易學(xué):Python極其容易上手,因?yàn)镻ython有極其簡單的說明文檔[5] 。
3.速度快:Python 的底層是用 C 語言寫的,很多標(biāo)準(zhǔn)庫和第三方庫也都是用 C 寫的,運(yùn)行速度非常快。
4.免費(fèi)、開源:Python是FLOSS(自由/開放源碼軟件)之一。使用者可以自由地發(fā)布這個(gè)軟件的拷貝、閱讀它的源代碼、對它做改動(dòng)、把它的一部分用于新的自由軟件中。FLOSS是基于一個(gè)團(tuán)體分享知識(shí)的概念。
5.高層語言:用Python語言編寫程序的時(shí)候無需考慮諸如如何管理你的程序使用的內(nèi)存一類的底層細(xì)節(jié)。
6.可移植性:由于它的開源本質(zhì),Python已經(jīng)被移植在許多平臺(tái)上(經(jīng)過改動(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開發(fā)的android平臺(tái)。
7.解釋性:一個(gè)用編譯性語言比如C或C++寫的程序可以從源文件(即C或C++語言)轉(zhuǎn)換到一個(gè)你的計(jì)算機(jī)使用的語言(二進(jìn)制代碼,即0和1)。這個(gè)過程通過編譯器和不同的標(biāo)記、選項(xiàng)完成。運(yùn)行程序的時(shí)候,連接/轉(zhuǎn)載器軟件把你的程序從硬盤復(fù)制到內(nèi)存中并且運(yùn)行。而Python語言寫的程序不需要編譯成二進(jìn)制代碼。你可以直接從源代碼運(yùn)行 程序。在計(jì)算機(jī)內(nèi)部,Python解釋器把源代碼轉(zhuǎn)換成稱為字節(jié)碼的中間形式,然后再把它翻譯成計(jì)算機(jī)使用的機(jī)器語言并運(yùn)行。這使得使用Python更加簡單。也使得Python程序更加易于移植。
8.面向?qū)ο螅篜ython既支持面向過程的編程也支持面向?qū)ο蟮木幊?。在“面向過程”的語言中,程序是由過程或僅僅是可重用代碼的函數(shù)構(gòu)建起來的。在“面向?qū)ο蟆钡恼Z言中,程序是由數(shù)據(jù)和功能組合而成的對象構(gòu)建起來的。
9.可擴(kuò)展性:如果需要一段關(guān)鍵代碼運(yùn)行得更快或者希望某些算法不公開,可以部分程序用C或C++編寫,然后在Python程序中使用它們。
10.可嵌入性:可以把Python嵌入C/C++程序,從而向程序用戶提供腳本功能。
11.豐富的庫:Python標(biāo)準(zhǔn)庫確實(shí)很龐大。它可以幫助處理各種工作,包括正則表達(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圖像庫等等。
12.規(guī)范的代碼:Python采用強(qiáng)制縮進(jìn)的方式使得代碼具有較好可讀性。而Python語言寫的程序不需要編譯成二進(jìn)制代碼。
?缺點(diǎn)
1.單行語句和命令行輸出問題:很多時(shí)候不能將程序連寫成一行,如import sys;for i in sys.path:print i。而perl和awk就無此限制,可以較為方便的在shell下完成簡單程序,不需要如Python一樣,必須將程序?qū)懭胍粋€(gè).py文件。
2.獨(dú)特的語法:這也許不應(yīng)該被稱為局限,但是它用縮進(jìn)來區(qū)分語句關(guān)系的方式還是給很多初學(xué)者帶來了困惑。即便是很有經(jīng)驗(yàn)的Python程序員,也可能陷入陷阱當(dāng)中。最常見的情況是tab和空格的混用會(huì)導(dǎo)致錯(cuò)誤,而這是用肉眼無法分別的。
3.運(yùn)行速度慢:這里是指與C和C++相比。
多個(gè)領(lǐng)域
python的介紹以及操作
