為了提高模塊加載的速度,每個模塊都會在__pycache__文件夾中放置該模塊的預(yù)編譯模塊,命名為module.version.pyc,version是模塊的預(yù)編譯版本編碼,一般都包含Python的版本號。例如在CPython 發(fā)行版3.4中,fibo.py文件的預(yù)編譯文件就是:__pycache__/fibo.cpython-34.pyc。這種命名規(guī)則可以保證不同版本的模塊和不同版本的python編譯器的預(yù)編譯模塊可以共存。以下是小編為你整理的如何自學(xué)好python ?
腳本在運(yùn)行之前會首先檢查python文件的*編輯日期和預(yù)編譯模塊的編譯時間,從而決定是否需要重新編譯。預(yù)編譯模塊也是跨平臺的,所以不同的模塊是可以在不同的系統(tǒng)和不同的架構(gòu)之間共享的。 ?
Python在兩種情況下不檢查緩存。*種,從命令行中直接加載的模塊總是會重新編譯并且結(jié)果不保存。第二種,如果沒有源模塊,則不會檢查緩存。為了支持無源代碼的部署方式,應(yīng)該將預(yù)編譯模塊放在源代碼文件夾中而不是__pycache__中,并且不要包含源代碼模塊。
?
你可以使用-O和-OO參數(shù)來降低預(yù)編譯模塊的大小。-O開關(guān)會去除assert語句,-OO開關(guān)會去除assert語句和__doc__字符串。因?yàn)橛行┠K要依賴這些語句,因此只有當(dāng)你確認(rèn)模塊的內(nèi)容時才去使用這些開關(guān)。優(yōu)化模塊的后綴名是.pyo。 ?
.pyo和.pyc文件的執(zhí)行速度不會比.py文件快,快的地方在于模塊加載的速度。compileall模塊可以用來把某個文件夾的中的所有文件都編譯成為.pyc或者.pyo文件。 ?
lambdalambda通常是匿名函數(shù)的代名詞,我們用到lambda的時候就是創(chuàng)建一個匿名函數(shù):舉個簡單的例子:x代表了輸入,x**2代表計(jì)算方法,也代表返回內(nèi)容,也就是說這個函數(shù)輸入一個數(shù),返回這個數(shù)的平方。但是因?yàn)檫@個函數(shù)沒有函數(shù)名,所以無法在其他地方調(diào)用 ?
除非我們將這個函數(shù)起一個名字:但通常我們不會這么做,匿名函數(shù)只是作為匿名使用。 ?
filter函數(shù)用法是:filter(fuction,list):將list中每一個元素帶入到function中,計(jì)算返回值,將返回值為True的list中的元素形成一個新的list,當(dāng)然也可以是tuple。 ?
對于上面這個函數(shù),我們可以用lambda來簡化:它的意思是,如果alist中的值的平方小于5,就返回這個值,形成一個新的list ?
關(guān)于python
Python(英國發(fā)音:/?pa?θ?n/ 美國發(fā)音:/?pa?θɑ?n/), 是一種面向?qū)ο蟮慕忉屝陀?jì)算機(jī)程序設(shè)計(jì)語言,由荷蘭人Guido van Rossum于1989年發(fā)明,*個公開發(fā)行版發(fā)行于1991年。Python是純粹的自由軟件,源代碼和解釋器CPython遵循GPL(GNU General Public License)協(xié)議[1] 。Python語法簡潔清晰,特色之一是強(qiáng)制用空白符(w作為語句縮進(jìn)。 ?
首先從Python官網(wǎng)(https://www.python.org/downloads/)下載Python安裝程序,本文以Python 3.5.2為例:
?
web-based installer 需要通過聯(lián)網(wǎng)完成安裝2、executable installer 通過可執(zhí)行文件(*.exe)方式安裝3、embeddable zip file 嵌入式版本,可以集成到其它應(yīng)用中 ?
筆者開發(fā)環(huán)境是Windows所以選擇紅框選中的版本,Mac用戶下載紅框標(biāo)注的版本,下載完成后,找到相應(yīng)的軟件包, ?
Web方向的練手項(xiàng)目
這個其實(shí)是肯定不用多少的了。Python的練手項(xiàng)目就是可以做一個網(wǎng)站了。我們可以做一個屬于自己的博客。在做博客的時候,我們可以鞏固的知識點(diǎn)是
Html+CSS+JS的基礎(chǔ)知識,以及熟練的運(yùn)用Python的Web開發(fā)框架(例如Django或者Flask)做出一個屬于自己的網(wǎng)站。 ?
做一個網(wǎng)絡(luò)數(shù)據(jù)抓取工具
也就是我們常說的網(wǎng)絡(luò)爬蟲??梢哉业揭粋€自己喜歡的網(wǎng)站。試著抓取一些網(wǎng)站數(shù)據(jù),在抓取數(shù)據(jù)的過程中,你會遇到例如 反抓取 需要登陸 驗(yàn)證碼驗(yàn)證以及IP檢測等多種問題。但這恰恰不就是提高的過程么?;蛟S,你也可能寫一個自己的“小百度”呢、 ?
做一個圖像識別的項(xiàng)目
不要覺得太難。我們可以從一個簡單的項(xiàng)目開啟。驗(yàn)證碼就是一個圖片。我們是不是可以試著識別一下驗(yàn)證碼上面的文字?不要覺得麻煩,也不要覺得太過簡單。所有復(fù)雜的事情都是從簡單開始的。學(xué)習(xí)驗(yàn)證碼識別對于我們寫網(wǎng)絡(luò)爬蟲是不是特別有用呢?在后期深入的過程中,你還可以做一個圖像識別軟件。 ?
做一個Python聊天機(jī)器人
是不是覺得現(xiàn)在手機(jī)軟件中的智能聊天軟件很神奇。你同樣可以做一個屬于自己的聊天機(jī)器人。前期我們可以做一個應(yīng)答式的,也就是所有的會話就是存儲在數(shù)據(jù)庫中。后期的話可以學(xué)習(xí)人工智能學(xué)習(xí)。讓你的機(jī)器人更加智能。 ?
做一個網(wǎng)絡(luò)服務(wù)器和客戶端
使用Python你可以非常方便的實(shí)現(xiàn)一個網(wǎng)絡(luò)服務(wù)器和瀏覽器的功能。通過網(wǎng)絡(luò)編程項(xiàng)目的實(shí)踐。對于網(wǎng)絡(luò)應(yīng)用以及網(wǎng)絡(luò)協(xié)議的理解將會是一個非常寶貴的經(jīng)驗(yàn)。