Python簡介
Python(英國發(fā)音:/?pa?θ?n/美國發(fā)音:/?pa?θɑ?n/),是一種面向?qū)ο蟮慕忉屝陀嬎銠C程序設(shè)計語言,由荷蘭人GuidovanRossum于1989年發(fā)明,第一個公開發(fā)行版發(fā)行于1991年。
Python是純粹的自由軟件,源代碼和解釋器CPython遵循GPL(GNUGeneralPublicLicense)協(xié)議。Python語法簡潔清晰,特色之一是強制用空白符(whitespace)作為語句縮進(jìn)。
Python具有豐富和強大的庫。它常被昵稱為膠水語言,能夠把用其他語言制作的各種模塊(尤其是C/C++)很輕松地聯(lián)結(jié)在一起。常見的一種應(yīng)用情形是,使用Python快速生成程序的原型(有時甚至是程序的最終界面),然后對其中有特別要求的部分,用更合適的語言改寫,比如3D游戲中的圖形渲染模塊,性能要求特別高,就可以用C/C++重寫,而后封裝為Python可以調(diào)用的擴(kuò)展類庫。需要注意的是在您使用擴(kuò)展類庫時可能需要考慮平臺問題,某些可能不提供跨平臺的實現(xiàn)。
Python特點
1、Python使用C語言開發(fā),但是Python不再有C語言中的指針等復(fù)雜的數(shù)據(jù)類型。
2、Python具有很強的面向?qū)ο筇匦?,而且簡化了面向?qū)ο蟮膶崿F(xiàn)。它消除了保護(hù)類型、抽象類、接口等面向?qū)ο蟮脑亍?/p>
3、Python代碼塊使用空格或制表符縮進(jìn)的方式分隔代碼。
4、Python僅有31個保留字,而且沒有分號、begin、end等標(biāo)記。
5、Python是強類型語言,變量創(chuàng)建后會對應(yīng)一種數(shù)據(jù)類型,出現(xiàn)在統(tǒng)一表達(dá)式中的不同類型的變量需要做類型轉(zhuǎn)換。
Python搭建開發(fā)環(huán)境
1、可以到www.python.org下載安裝包,然后通過configure、make、makeinstall進(jìn)行安裝。
2、也可以到www.activestate.com去下載ActivePython組件包。(ActivePython是對Python核心和常用模塊的二進(jìn)制包裝,它是ActiveState公司發(fā)布的Python開發(fā)環(huán)境。ActivePython使得Python的安裝更加容易,并且可以應(yīng)用在各種操作系統(tǒng)上。ActivePython包含了一些常用的Python擴(kuò)展,以及Windows環(huán)境的編程接口)。對ActivePython來說,如果你是windows用戶,下載msi包安裝即可;如果你是Unix用戶,下載tar.gz包直接解壓即可。
3、Python的IDE,包括PythonWin、Eclipse+PyDev插件、Komodo、EditPlus。
Python的應(yīng)用
系統(tǒng)編程:提供API(ApplicationProgrammingInterface應(yīng)用程序編程接口),能方便進(jìn)行系統(tǒng)維護(hù)和管理,Linux下標(biāo)志性語言之一,是很多系統(tǒng)管理員理想的編程工具。
圖形處理:有PIL、Tkinter等圖形庫支持,能方便進(jìn)行圖形處理。
數(shù)學(xué)處理:NumPy擴(kuò)展提供大量與許多標(biāo)準(zhǔn)數(shù)學(xué)庫的接口。
文本處理:python提供的re模塊能支持正則表達(dá)式,還提供SGML,XML分析模塊,許多程序員利用python進(jìn)行XML程序的開發(fā)。
數(shù)據(jù)庫編程:程序員可通過遵循PythonDB-API(數(shù)據(jù)庫應(yīng)用程序編程接口)規(guī)范的模塊與MicrosoftSQLServer,Oracle,Sybase,DB2,MySQL、SQLite等數(shù)據(jù)庫通信。python自帶有一個Gadfly模塊,提供了一個完整的SQL環(huán)境。
網(wǎng)絡(luò)編程:提供豐富的模塊支持sockets編程,能方便快速地開發(fā)分布式應(yīng)用程序。很多大規(guī)模軟件開發(fā)計劃例如Zope,Mnet及BitTorrent.Google都在廣泛地使用它。
Web編程:應(yīng)用的開發(fā)語言,支持最新的XML技術(shù)。
多媒體應(yīng)用:Python的PyOpenGL模塊封裝了“OpenGL應(yīng)用程序編程接口”,能進(jìn)行二維和三維圖像處理。PyGame模塊可用于編寫游戲軟件。
pymo引擎:PYMO全稱為pythonmemoriesoff,是一款運行于SymbianS60V3,Symbian3,S60V5,Symbian3,Android系統(tǒng)上的AVG游戲引擎。因其基于python2.0平臺開發(fā),并且適用于創(chuàng)建秋之回憶(memoriesoff)風(fēng)格的AVG游戲,故命名為PYMO。
黑客編程:python有一個hack的庫,內(nèi)置了你熟悉的或不熟悉的函數(shù),但是缺少成就感。
用Python寫簡單爬蟲
通過上面這三句就可以將URL的源碼存在content變量中,其類型為字符型。
接下來是要從這堆HTML源碼中提取我們需要的內(nèi)容。用Chrome查看一下對應(yīng)的內(nèi)容的代碼(也可以用Firefox的Firebug)。
可以看到url的信息存儲在span標(biāo)簽中,要獲取其中的信息可以用正則式。
Python應(yīng)用場景
Web應(yīng)用開發(fā)
Python經(jīng)常被用于Web開發(fā)。比如,通過mod_wsgi模塊,Apache可以運行用Python編寫的Web程序。Python定義了WSGI標(biāo)準(zhǔn)應(yīng)用接口來協(xié)調(diào)Http服務(wù)器與基于Python的Web程序之間的通信。一些Web框架,如Django,TurboGears,web2py,Zope等,可以讓程序員輕松地開發(fā)和管理復(fù)雜的Web程序。
操作系統(tǒng)管理、服務(wù)器運維的自動化腳本
在很多操作系統(tǒng)里,Python是標(biāo)準(zhǔn)的系統(tǒng)組件。大多數(shù)Linux發(fā)行版以及NetBSD、OpenBSD和MacOSX都集成了Python,可以在終端下直接運行Python。有一些Linux發(fā)行版的安裝器使用Python語言編寫,比如Ubuntu的Ubiquity安裝器,RedHatLinux和Fedora的Anaconda安裝器。GentooLinux使用Python來編寫它的Portage包管理系統(tǒng)。Python標(biāo)準(zhǔn)庫包含了多個調(diào)用操作系統(tǒng)功能的庫。通過pywin32這個第三方軟件包,Python能夠訪問Windows的COM服務(wù)及其它WindowsAPI。使用IronPython,Python程序能夠直接調(diào)用.NetFramework。一般說來,Python編寫的系統(tǒng)管理腳本在可讀性、性能、代碼重用度、擴(kuò)展性幾方面都優(yōu)于普通的shell腳本。
科學(xué)計算
NumPy,SciPy,Matplotlib可以讓Python程序員編寫科學(xué)計算程序。
桌面軟件
PyQt、PySide、wxPython、PyGTK是Python快速開發(fā)桌面應(yīng)用程序的利器。
服務(wù)器軟件(網(wǎng)絡(luò)軟件)
Python對于各種網(wǎng)絡(luò)協(xié)議的支持很完善,因此經(jīng)常被用于編寫服務(wù)器軟件、網(wǎng)絡(luò)爬蟲。第三方庫Twisted支持異步網(wǎng)絡(luò)編程和多數(shù)標(biāo)準(zhǔn)的網(wǎng)絡(luò)協(xié)議(包含客戶端和服務(wù)器),并且提供了多種工具,被廣泛用于編寫高性能的服務(wù)器軟件。
游戲
很多游戲使用C++編寫圖形顯示等高性能模塊,而使用Python或者Lua編寫游戲的邏輯、服務(wù)器。相較于Python,Lua的功能更簡單、體積更?。欢鳳ython則支持更多的特性和數(shù)據(jù)類型。
構(gòu)思實現(xiàn),產(chǎn)品早期原型和迭代
YouTube、Google、Yahoo!、NASA都在內(nèi)部大量地使用Python。
Python的應(yīng)用方向
1.常規(guī)軟件開發(fā)
Python支持函數(shù)式編程和OOP面向?qū)ο缶幊?,能夠承?dān)任何種類軟件的開發(fā)工作,因此常規(guī)的軟件開發(fā)、腳本編寫、網(wǎng)絡(luò)編程等都屬于標(biāo)配能力。
2.科學(xué)計算
隨著NumPy,SciPy,Matplotlib,Enthoughtlibrarys等眾多程序庫的開發(fā),Python越來越適合于做科學(xué)計算、繪制高質(zhì)量的2D和3D圖像。和科學(xué)計算領(lǐng)域最流行的商業(yè)軟件Matlab相比,Python是一門通用的程序設(shè)計語言,比Matlab所采用的腳本語言的應(yīng)用范圍更廣泛,有更多的程序庫的支持。雖然Matlab中的許多高級功能和toolbox目前還是無法替代的,不過在日常的科研開發(fā)之中仍然有很多的工作是可以用Python代勞的。
3.自動化運維
這幾乎是Python應(yīng)用的自留地,作為運維工程師首選的編程語言,Python在自動化運維方面已經(jīng)深入人心,比如Saltstack和Ansible都是大名鼎鼎的自動化平臺。
4.云計算
開源云計算解決方案OpenStack就是基于Python開發(fā)的,搞云計算的同學(xué)都懂的。
5.WEB開發(fā)
基于Python的Web開發(fā)框架不要太多,比如耳熟能詳?shù)腄jango,還有Tornado,F(xiàn)lask。其中的Python+Django架構(gòu),應(yīng)用范圍非常廣,開發(fā)速度非???,學(xué)習(xí)門檻也很低,能夠幫助你快速的搭建起可用的WEB服務(wù)。
6.網(wǎng)絡(luò)爬蟲
也稱網(wǎng)絡(luò)蜘蛛,是大數(shù)據(jù)行業(yè)獲取數(shù)據(jù)的核心工具。沒有網(wǎng)絡(luò)爬蟲自動地、不分晝夜地、高智能地在互聯(lián)網(wǎng)上爬取免費的數(shù)據(jù),那些大數(shù)據(jù)相關(guān)的公司恐怕要少四分之三。能夠編寫網(wǎng)絡(luò)爬蟲的編程語言有不少,但Python絕對是其中的主流之一,其Scripy爬蟲框架應(yīng)用非常廣泛。
7.數(shù)據(jù)分析
在大量數(shù)據(jù)的基礎(chǔ)上,結(jié)合科學(xué)計算、機器學(xué)習(xí)等技術(shù),對數(shù)據(jù)進(jìn)行清洗、去重、規(guī)格化和針對性的分析是大數(shù)據(jù)行業(yè)的基石。Python是數(shù)據(jù)分析的主流語言之一。
8.人工智能
Python在人工智能大范疇領(lǐng)域內(nèi)的機器學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)、深度學(xué)習(xí)等方面都是主流的編程語言,得到廣泛的支持和應(yīng)用。
-
python
+關(guān)注
關(guān)注
53文章
4753瀏覽量
84068
發(fā)布評論請先 登錄
相關(guān)推薦
評論