朋友圈

400-850-8622

全國(guó)統(tǒng)一學(xué)習(xí)專線 9:00-21:00

位置:北京電腦培訓(xùn)資訊 > 北京數(shù)據(jù)庫(kù)培訓(xùn)資訊 > 終于理會(huì)要學(xué)python怎么學(xué)

終于理會(huì)要學(xué)python怎么學(xué)

日期:2019-08-25 11:34:26     瀏覽:403    來源:天才領(lǐng)路者
核心提示:如果我們有很多Python項(xiàng)目,不同的項(xiàng)目可能需要不同版本的模塊,另外,模塊之間也可能存在不同的依賴關(guān)系,如果我們將所有開發(fā)都在全局開發(fā)環(huán)境下進(jìn)行,勢(shì)必會(huì)導(dǎo)致依賴的混亂。所以使用虛擬環(huán)境很有必要。

如果我們有很多Python項(xiàng)目,不同的項(xiàng)目可能需要不同版本的模塊,另外,模塊之間也可能存在不同的依賴關(guān)系,如果我們將所有開發(fā)都在全局開發(fā)環(huán)境下進(jìn)行,勢(shì)必會(huì)導(dǎo)致依賴的混亂。所以使用虛擬環(huán)境很有必要。以下是小編為你整理的要學(xué)python怎么學(xué) ?

本文假設(shè)你已經(jīng)安裝了Python,如果沒有請(qǐng)參考我的另一篇文章 ?

sudo pip3 install virtualenv virtualenvwrapper ?

sudo rm -rf ~/.cache/pip

要學(xué)python怎么學(xué)

?

# virtualenv and virtualenvwrapper ?

export WORKON_HOME=$HOME/.virtualenvs ?

source /usr/local/bin/virtualenvwrapper.sh ?

echo -e "n# virtualenv and virtualenvwrapper" >> ~/.profile ?

echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.profile ?

echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.profile ?

source ~/.profile ?

接下來,我們來創(chuàng)建我們將用于計(jì)算機(jī)視覺開發(fā)的Python虛擬環(huán)境 ?

mkvirtualenv cv -p python2 ?

該命令將使用Python 2.7創(chuàng)建一個(gè)名為cv的新Python虛擬環(huán)境 。 ?

如果您想使用Python 3,則需要使用此命令: ?

mkvirtualenv cv -p python3 ?

執(zhí)行下面命令進(jìn)入虛環(huán)境進(jìn)行環(huán)境搭建和開發(fā) ?

source ~/.profile ?

workon cv ?

爬郵箱的方法

如果不會(huì)在Eclipse中配置搭建Python開發(fā)環(huán)境,請(qǐng)大家先參考本人另一篇百度經(jīng)驗(yàn)——Eclipse+PyDev配置搭建Python開發(fā)環(huán)境(http://jingya請(qǐng)把中文刪掉n.baidu.com/article/cd4c2979101f02756f6e6064.html) ?

如果不會(huì)用Eclipse編寫和運(yùn)行Python程序,請(qǐng)大家參考本人另一篇百度經(jīng)驗(yàn)——Python入門基礎(chǔ)教程 用Eclipse編寫Python程序(http://jingya請(qǐng)把中文刪掉n.baidu.com/article/1876c8529e8de0890b1376a9.html) ?

這里用的是qq郵箱,請(qǐng)把下圖程序代碼中紅色部分換成自己qq郵箱的帳號(hào)密碼,發(fā)送郵箱和接收郵箱可以為同一郵箱 ?

運(yùn)行,結(jié)果不出所料,報(bào)錯(cuò) ?

這,用戶被鎖定,這是什么情況,百度的繼續(xù)。說是郵件服務(wù)器不配套,將代碼再三查看,額,我用的是qq郵箱,而服務(wù)器是smtp.163.com的,這是兩家人,不能互相串通勾結(jié) ?

類的繼承

在類的繼承中,如果重定義某個(gè)方法,該方法會(huì)覆蓋父類的同名方法,但有時(shí),我們希望能同時(shí)實(shí)現(xiàn)父類的功能,這時(shí),我們就需要調(diào)用父類的方法了,可通過使用 super 來實(shí)現(xiàn),比如: ?

在上面,Animal 是父類,Dog 是子類,我們?cè)?Dog 類重定義了 greet 方法,為了能同時(shí)實(shí)現(xiàn)父類的功能,我們又調(diào)用了父類的方法,看下面的使用: ?

super 的一個(gè)最常見用法可以說是在子類中調(diào)用父類的初始化方法了,比如: ?

深入 super() ?

看了上面的使用,你可能會(huì)覺得 super 的使用很簡(jiǎn)單,無非就是獲取了父類,并調(diào)用父類的方法。其實(shí),在上面的情況下,super 獲得的類剛好是父類,但在其他情況就不一定了,super 其實(shí)和父類沒有實(shí)質(zhì)性的關(guān)聯(lián)。 ?

讓我們看一個(gè)稍微復(fù)雜的例子,涉及到多重繼承,代碼如下: ?

其中,Base 是父類,A, B 繼承自 Base, C 繼承自 A, B,它們的繼承關(guān)系如下:

?

現(xiàn)在,讓我們看一下使用: ?

如果你認(rèn)為 super 代表『調(diào)用父類的方法』,那你很可能會(huì)疑惑為什么 enter A 的下一句不是 enter Base 而是 enter B。原因是,super 和父類沒有實(shí)質(zhì)性的關(guān)聯(lián),現(xiàn)在讓我們搞清 super 是怎么運(yùn)作的。 ?

事實(shí)上,對(duì)于你定義的每一個(gè)類,Python 會(huì)計(jì)算出一個(gè)方法解析順序(Method Resolution Order, MRO)列表,它代表了類繼承的順序,我們可以使用下面的方式獲得某個(gè)類的 MRO 列表: ?

那這個(gè) MRO 列表的順序是怎么定的呢,它是通過一個(gè) C3 線性化算法來實(shí)現(xiàn)的,這里我們就不去深究這個(gè)算法了,感興趣的讀者可以自己去了解一下,總的來說,一個(gè)類的 MRO 列表就是合并所有父類的 MRO 列表,并遵循以下三條原則: ?

---子類永遠(yuǎn)在父類前面 ?

---如果有多個(gè)父類,會(huì)根據(jù)它們?cè)诹斜碇械捻樞虮粰z查 ?

---如果對(duì)下一個(gè)類存在兩個(gè)合法的選擇,選擇*個(gè)父類 ?

如何輸出程序

打開python編輯器,輸出主要用到的函數(shù)是print,和c語言的printf不同.輸出是屏幕打印一行話需要再函數(shù)后面的括號(hào)中,輸入你需要打印的字符串,用'XXXX'形式輸出。符號(hào)都需要用英文符號(hào)。點(diǎn)擊CTRL+s,然后按F5運(yùn)行代碼,屏幕上就打印出這一句話。引號(hào)是不輸出的。漢字同樣也可以輸出。 ?

不妨試一下printf,按照同樣的格式輸出,系統(tǒng)會(huì)提示printf沒有定義,說明python中的函數(shù)和C語言中的函數(shù)還是有差別的。print函數(shù)中括號(hào)內(nèi)部使用雙引號(hào)也是可以正常打印出字符串的。 ?

print也可以打印多個(gè)字符串,中間如果用逗號(hào)隔開,系統(tǒng)默認(rèn)使用空格輸出。與c語言相同的是python同樣可以使用n轉(zhuǎn)移序列來實(shí)現(xiàn)換行輸出。如果字符串中有很多的換行,可以使用另外一種方法達(dá)到換行效果。使用'''開頭,*'''結(jié)束。注意輸出的縮進(jìn)和格式。 ?

如果需要輸出一些特殊符號(hào)或者特殊格式,大家可以自己設(shè)計(jì),輸出一行好看的標(biāo)題可以試著自己寫一下代碼。輸出一行*號(hào)和文字,輸出一行*號(hào)一行文字再加上一行*號(hào),輸出一個(gè)金字塔格式的符號(hào)。自己也可以設(shè)計(jì)其他漂亮的圖案輸出。

如果本頁(yè)不是您要找的課程,您也可以百度查找一下: