Python語(yǔ)言是一種典型的腳本語(yǔ)言,簡(jiǎn)潔,語(yǔ)法約束少,接近人類(lèi)語(yǔ)言。有豐富的數據結構,例如列表、字典、集合等。具有可移植性,支持面向過(guò)程和面向對象編程,并且開(kāi)源。以下是小編為你整理的如何開(kāi)發(fā)學(xué)習python ?
下載安裝:從python官網(wǎng)下載開(kāi)發(fā)和運行環(huán)境程序。本例下載python-3.3.3.amd64的安裝包,并安裝。 ?
開(kāi)發(fā)工具:window系統中,python有多種開(kāi)發(fā)工具,比如,一、直接在cmd命令窗口執行,但此種僅能單條語(yǔ)句執行,不能運行完整的程序。二、python自帶的集成開(kāi)發(fā)環(huán)境,可通過(guò)開(kāi)始——所有程序——python3.3——IDLE(Python GUI)啟動(dòng)。三、其他集成開(kāi)發(fā)環(huán)境,如PythonWin等,有編輯和調試能力,還實(shí)現了MFC類(lèi)庫存的包裝。
本例中,使用python自帶的開(kāi)發(fā)環(huán)境。File—New File,新建py文檔,編寫(xiě)程序,保存。Run——Run module,可得到運行結果。 ?
封裝性:可以把屬性、方法結合在一起,不可以直接訪(fǎng)問(wèn)對象的屬性,僅能通過(guò)接口與對象發(fā)生聯(lián)系。以下把方法和屬性封裝成了一個(gè)類(lèi)。 ?
構造器:python有3種類(lèi)型的構造器,且一個(gè)類(lèi)中僅可以定義一個(gè)構造器,若多個(gè),則以*為準。1.若不聲明,則默認為一個(gè)沒(méi)有任何操作的特殊的__init__方法,__init__(self),此時(shí)可通過(guò)obj = my_class()聲明實(shí)例。 2.自聲明__init__構造器,會(huì )覆蓋默認的,且可以更新類(lèi)的數據屬性。3.構造器方法__new__(),用于不可變內置類(lèi)型派生,不能通過(guò)實(shí)例訪(fǎng)問(wèn)屬性,僅能通過(guò)類(lèi)訪(fǎng)問(wèn)。 ?
繼承性:python支持多繼承,且子類(lèi)繼承了父類(lèi)的方法和屬性。若子類(lèi)中有和父類(lèi)相同名稱(chēng)的方法,則子類(lèi)會(huì )覆蓋(Override)父類(lèi)方法。父類(lèi)方法依舊可以訪(fǎng)問(wèn)。 ?
數據結構:有豐富的數據結構,例如列表、字典、集合等。本例簡(jiǎn)單介紹字典的使用。字典是鍵值對的無(wú)序集合,是可變對象。鍵在字典中是*的且必須是不可變對象。值可以是可變對象或不可變對象。以下例子對python字典的定義、訪(fǎng)問(wèn)、更新等的操作。 ?
學(xué)會(huì )python的作用
Python高級工程師 : 北上廣深的話(huà),薪金在1萬(wàn)以上,需要精通Linux/Unixg平臺,有英語(yǔ)閱讀功底。 ?
Web網(wǎng)站開(kāi)發(fā)方向: 熟悉Web開(kāi)發(fā)的常用 Python框架,熟悉掌握Mysql類(lèi)數據庫的操作即可。 ?
SEO工程師: 為自己或公司開(kāi)發(fā)和改進(jìn)SEO相關(guān)軟件,實(shí)現自動(dòng)化搜索引擎優(yōu)化和日常重復工作。 ?
Python自動(dòng)化測試:熟悉自動(dòng)化流程、方法和常用的模塊的使用,有英文讀寫(xiě)的能力。 ?
Linux運維工程師: Linux服務(wù)器管理,數據分析、自動(dòng)化處理任務(wù)、分析網(wǎng)站日志、定時(shí)計劃管理,解放雙手。 ?
Python游戲開(kāi)發(fā)工程師: 網(wǎng)絡(luò )游戲后端服務(wù)器邏輯的開(kāi)發(fā)和處理,有大型數據庫使用經(jīng)驗,喜歡從事游戲相關(guān)工作。 Python自學(xué)愛(ài)好者: 可以自己開(kāi)發(fā)一些小軟件和應用,帶圖形化界面的軟件,方便日常工作。 ?
如何導入re模塊
導入re模塊 ?
#導入正則表達式模塊 ?
import re ?
再來(lái)一個(gè)簡(jiǎn)單的例子演示 ?
#簡(jiǎn)單演示 ?
s='123abc123abc123abc' ?
print s ?
print re.findall(r'123',s) ?
#'r'...''表示raw字符串 ?
#功能字符:'.','*','?','^','$','/' ?
#分界符:'[',']','(',')','{','}' ?
#轉義字符:'d','w','s','b' ?
#'|'表示或 ?
s='I have a pen and I have a apple' ?
print s ?
print re.findall(r'I have a pen|apple',s) ?
print re.findall(r'I have a (?:pen|dog)',s) ?
使用無(wú)捕獲組與一般或'|'的區別 ?
無(wú)捕獲組使用'(?:...)'格式 ?
#無(wú)捕獲組:'(?:)' ?
s='ababababba babab babababab' ?
print re.findall(r'/b(?:ab)+/b',s)
?
#'.'匹配除換行符之外的所有字符,若選用re.S則包括所有字符 ?
s='123n456n789' ?
print s ?
print re.findall(r'.+',s) ?
print re.findall(r'.+',s,re.S) ?
?
rllib.robotparser
robotparser 模塊是由一個(gè)單獨的類(lèi) RobotFileParser 構成的。這個(gè)類(lèi)會(huì )回答諸如一個(gè)特定的用戶(hù)代理是否獲取已經(jīng)設置了 robot.txt 的網(wǎng)站的 URL。 robot.txt 文件會(huì )告訴網(wǎng)絡(luò )爬蟲(chóng)或者機器人當前網(wǎng)站的那些部分是不允許被訪(fǎng)問(wèn)的。讓我們看一個(gè)簡(jiǎn)單的例子: ?
>>> import urllib.robotparser >>> robot = urllib.robotparser.RobotFileParser() >>> robot.set_url('http://arstechnica.com/robots.txt') None >>> robot.read() None >>> robot.can_fetch('*', 'http://arstechnica.com/') True >>> robot.can_fetch('*', 'http://arstechnica.com/cgi-bin/') False ?
這里我們導入了 robot 分析器類(lèi),然后創(chuàng )建一個(gè)實(shí)例。然后我們給它傳遞一個(gè)表明網(wǎng)站 robots.txt 位置的 URL 。接下來(lái)我們告訴分析器來(lái)讀取這個(gè)文件。完成后,我們給它了一組不同的 URL 讓它找出那些我們可以爬取而那些不能爬取。我們很快就看到我們可以訪(fǎng)問(wèn)主站但是不能訪(fǎng)問(wèn) cgi-bin 路徑。 ?
現在你就有能力使用 Python 的 urllib 包了。在這一節里,我們學(xué)習了如何下載文件、提交 Web 表單、修改自己的用戶(hù)代理以及訪(fǎng)問(wèn) robots.txt。 urllib 還有一大堆附加功能沒(méi)有在這里提及,比如網(wǎng)站身份認證。你可能會(huì )考慮在使用 urllib 進(jìn)行身份認證之前切換到 requests 庫,因為 requests 已經(jīng)以更易用和易調試的方式實(shí)現了這些功能。我同時(shí)也希望提醒你 Python 已經(jīng)通過(guò) http.cookies 模塊支持 Cookies 了,雖然在 request 包里也很好的封裝了這個(gè)功能。你應該可能考慮同時(shí)試試兩個(gè)來(lái)決定那個(gè)最適合你。