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