一十气、python語言是啥:
1.面向?qū)ο?/strong>
python是一種面向?qū)ο?/strong>的解釋型計(jì)算機(jī)程序設(shè)計(jì)語言
2.解釋型語言
(1)Python是純粹的自由軟件, 源代碼和解釋器CPython遵循 GPL(GNU General Public License)協(xié)議 春霍。
(2)和Java一樣Python依賴于解釋器砸西,只不過Java依賴的是JVM,Python依賴的是PVM址儒,Python在執(zhí)行時(shí)芹枷,首先會(huì)將.py文件中的源代碼編譯成Python的byte code(字節(jié)碼),然后再由Python Virtual Machine(Python虛擬機(jī))來執(zhí)行這些編譯好的byte code莲趣。這種機(jī)制的基本思想跟Java鸳慈,.NET是一致的。
3.主要用于哪里
(1)web開發(fā)
(2)爬蟲喧伞、數(shù)據(jù)分析走芋、數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)潘鲫。
(3)科學(xué)計(jì)算翁逞,生物計(jì)算。
(4)云計(jì)算溉仑。
(5)運(yùn)維自動(dòng)化挖函。
(6)測(cè)試自動(dòng)化。
(7)ERP管理系統(tǒng)開發(fā)浊竟。
(8)游戲開發(fā)怨喘。
具體點(diǎn):
(1)圖形處理:有PIL津畸、Tkinter等圖形庫支持,能方便進(jìn)行圖形處理必怜。
(2)數(shù)學(xué)處理:NumPy擴(kuò)展提供大量與許多標(biāo)準(zhǔn)數(shù)學(xué)庫的接口肉拓。
(3)文本處理:python提供的re模塊能支持正則表達(dá)式,還提供SGML棚赔,XML分析模塊帝簇,許多程序員利用python進(jìn)行XML程序的開發(fā)。
(4)數(shù)據(jù)庫編程:程序員可通過遵循Python DB-API(數(shù)據(jù)庫應(yīng)用程序編程接口)規(guī)范的模塊與Microsoft SQL Server靠益,Oracle央勒,Sybase哄啄,DB2,MySQL、SQLite等數(shù)據(jù)庫通信杈抢。python自帶有一個(gè)Gadfly模塊,提供了一個(gè)完整的SQL環(huán)境洼专。
(5)網(wǎng)絡(luò)編程:提供豐富的模塊支持sockets編程贞绵,能方便快速地開發(fā)分布式應(yīng)用程序。很多大規(guī)模軟件開發(fā)計(jì)劃例如Zope眶痰,Mnet 及BitTorrent. Google都在廣泛地使用它瘤旨。
(6)Web編程:應(yīng)用的開發(fā)語言,支持最新的XML技術(shù)竖伯。
(7)多媒體應(yīng)用:Python的PyOpenGL模塊封裝了“OpenGL應(yīng)用程序編程接口”存哲,能進(jìn)行二維和三維圖像處理。PyGame模塊可用于編寫游戲軟件七婴。
(8)pymo引擎:PYMO全稱為python memories off祟偷,是一款運(yùn)行于Symbian S60V3,Symbian3,S60V5, Symbian3, Android系統(tǒng)上的AVG游戲引擎。因其基于python2.0平臺(tái)開發(fā)打厘,并且適用于創(chuàng)建秋之回憶(memories off)風(fēng)格的AVG游戲修肠,故命名為PYMO。
(9)黑客編程:python有一個(gè)hack的庫,內(nèi)置了你熟悉的或不熟悉的函數(shù)户盯,但是缺少成就感嵌施。
4.可擴(kuò)充的
Python本身被設(shè)計(jì)為可擴(kuò)充的。并非所有的特性和功能都集成到語言核心先舷。Python提供了豐富的API和工具艰管,以便程序員能夠輕松地使用C語言、C++蒋川、Cython來編寫擴(kuò)充模塊牲芋;或者Java、Jython來編寫模塊,IronPython缸浦,.NET來編寫模塊夕冲。
5.文件結(jié)構(gòu)
(1)python.exe在運(yùn)行程序的時(shí)候,會(huì)彈出一個(gè)黑色的控制臺(tái)窗口(也叫命令行窗口裂逐、DOS/CMD窗口)歹鱼;
(2)pythonw.exe是無窗口的Python可執(zhí)行程序,意思是在運(yùn)行程序的時(shí)候卜高,沒有窗口弥姻,代碼在后臺(tái)執(zhí)行。
(3)安裝視窗版 Python 時(shí)掺涛,擴(kuò)展名為 .py 的文件被默認(rèn)為用 python.exe 運(yùn)行的文件庭敦,而 .pyw文件則被默認(rèn)為用 pythonw.exe 運(yùn)行。
可用python + 文件位置(C:\Users\Liurenquan\Desktop\test.python)執(zhí)行python薪缆,但是要先配置環(huán)境變量秧廉。
6.標(biāo)準(zhǔn)庫
Tkinter
Python默認(rèn)的圖形界面接口。Tkinter是一個(gè)和Tk接口的Python模塊拣帽,Tkinter庫提供了對(duì)Tk API的接口疼电,它屬于Tcl/Tk的GUI工具組。
PyGTK
用于python GUI程序開發(fā)的GTK+庫减拭。GTK就是用來實(shí)現(xiàn)GIMP和Gnome的庫蔽豺。
PyQt
用于python的Qt開發(fā)庫。QT就是實(shí)現(xiàn)了KDE環(huán)境的那個(gè)庫拧粪,由一系列的模塊組成茫虽,有qt, qtcanvas, qtgl, qtnetwork, qtsql, qttable, qtui and qtxml,包含有300個(gè)類和超過5750個(gè)的函數(shù)和方法既们。PyQt還支持一個(gè)叫qtext的模塊,它包含一個(gè)QScintilla庫正什。該庫是Scintillar編輯器類的Qt接口啥纸。
wxPython
GUI編程框架,熟悉MFC的人會(huì)非常喜歡婴氮,簡(jiǎn)直是同一架構(gòu)(對(duì)于初學(xué)者或者對(duì)設(shè)計(jì)要求不高的用戶來說斯棒,使用Boa Constructor可以方便迅速的進(jìn)行wxPython的開發(fā))
PIL
python提供強(qiáng)大的圖形處理的能力,并提供廣泛的圖形文件格式支持主经,該庫能進(jìn)行圖形格式的轉(zhuǎn)換荣暮、打印和顯示。還能進(jìn)行一些圖形效果的處理罩驻,如圖形的放大穗酥、縮小和旋轉(zhuǎn)等。是Python用戶進(jìn)行圖象處理的強(qiáng)有力工具。
Psyco
一個(gè)Python代碼加速度器砾跃,可使Python代碼的執(zhí)行速度提高到與編譯語言一樣的水平骏啰。
xmpppy
Jabber服務(wù)器采用開發(fā)的XMPP協(xié)議,Google Talk也是采用XMPP協(xié)議的IM系統(tǒng)抽高。在Python中有一個(gè)xmpppy模塊支持該協(xié)議判耕。也就是說,我們可以通過該模塊與Jabber服務(wù)器通信翘骂,是不是很Cool壁熄。
PyMedia
用于多媒體操作的python模塊。它提供了豐富而簡(jiǎn)單的接口用于多媒體處理(wav, mp3, ogg, avi, divx, dvd, cdda etc)碳竟〔萆ィ可在Windows和Linux平臺(tái)下使用。
Pmw
Python megawidgets瞭亮,Python超級(jí)GUI組件集方仿,一個(gè)在python中利用Tkinter模塊構(gòu)建的高級(jí)GUI組件,每個(gè)Pmw都合并了一個(gè)或多個(gè)Tkinter組件统翩,以實(shí)現(xiàn)更有用和更復(fù)雜的功能仙蚜。
PyXML
用Python解析和處理XML文檔的工具包,包中的4DOM是完全相容于W3C DOM規(guī)范的厂汗。它包含以下內(nèi)容:
xmlproc: 一個(gè)符合規(guī)范的XML解析器委粉。Expat: 一個(gè)快速的,非驗(yàn)證的XML解析器娶桦。還有其他和他同級(jí)別的還有 PyHtml PySGML贾节。
PyGame
用于多媒體開發(fā)和游戲軟件開發(fā)的模塊。
PyOpenGL
模塊封裝了“OpenGL應(yīng)用程序編程接口”衷畦,通過該模塊python程序員可在程序中集成2D和3D的圖形栗涂。
NumPy、NumArray祈争、SAGE
NumArray是Python的一個(gè)擴(kuò)展庫斤程,主要用于處理任意維數(shù)的固定類型數(shù)組,簡(jiǎn)單說就是一個(gè)矩陣庫菩混。它的底層代碼使用C來編寫忿墅,所以速度的優(yōu)勢(shì)很明顯。SAGE是基于NumPy和其他幾個(gè)工具所整合成的數(shù)學(xué)軟件包沮峡,目標(biāo)是取代Magma, Maple, Mathematica和Matlab 這類工具疚脐。
MySQLdb
用于連接MySQL數(shù)據(jù)庫。還有用于zope的ZMySQLDA模塊邢疙,通過它就可在zope中連接mysql數(shù)據(jù)庫棍弄。
Sqlite3
用于連接sqlite數(shù)據(jù)庫望薄。
Python-ldap
提供一組面向?qū)ο蟮腁PI,可方便地在python中訪問ldap目錄服務(wù)照卦,它基于OpenLDAP2.x式矫。
smtplib
發(fā)送電子郵件。
ftplib
定義了FTP類和一些方法役耕,用以進(jìn)行客戶端的ftp編程采转。如果想了解ftp協(xié)議的詳細(xì)內(nèi)容,請(qǐng)參考RFC959瞬痘。
PyOpenCL
OpenCL的Python接口故慈,通過該模塊可以使用GPU實(shí)現(xiàn)并行計(jì)算。
7.例子
用Python寫簡(jiǎn)單爬蟲
首先框全,要通過urllib2這個(gè)Module獲得對(duì)應(yīng)的HTML源碼察绷。
import urllib2 #調(diào)用urllib2
url='http://www.baidu.com/s?wd=cloga' #把等號(hào)右邊的網(wǎng)址賦值給url
html=urllib2.urlopen(url).read() #html隨意取名 等號(hào)后面的動(dòng)作是打開源代碼頁面,并閱讀
print html #打印
通過上面這三句就可以將URL的源碼存在content變量中津辩,其類型為字符型拆撼。
接下來是要從這堆HTML源碼中提取我們需要的內(nèi)容。用Chrome查看一下對(duì)應(yīng)的內(nèi)容的代碼(也可以用Firefox的Firebug)喘沿。
可以看到url的信息存儲(chǔ)在span標(biāo)簽中闸度,要獲取其中的信息可以用正則式。