相信一個(gè)python的初學(xué)者一定已經(jīng)學(xué)完了基礎(chǔ)的編程知識(shí),和其他編程語言差不多,基礎(chǔ)的數(shù)據(jù)類型、判斷、循環(huán)、函數(shù),或許你還學(xué)了面向?qū)ο蟆H欢?,?dāng)你學(xué)完這些后,或許一本python的入門書籍你已經(jīng)學(xué)完了,但是你開始迷茫了,接下來,到底該干些什么呢?
經(jīng)過一年的學(xué)習(xí),我覺得python進(jìn)階的方法是,學(xué)完基礎(chǔ)知識(shí)后,就先從網(wǎng)絡(luò)編程開始,從一個(gè)最簡(jiǎn)單的socket開始,先寫寫兩臺(tái)機(jī)器如何通訊,找找成就感。
然后接著學(xué)習(xí)socketserver模塊和http.server模塊,它們是一個(gè)封裝一個(gè),你讀了這兩個(gè)模塊之后,就知道python面向?qū)ο蟮膹?qiáng)大,即使你現(xiàn)在寫不了那么好的代碼,但是你依然進(jìn)步著。
尤其是http.server模塊,你看完它的源碼后開始朝著python的web服務(wù)器方向發(fā)展了,要知道python的web服務(wù)器代碼,都是基于socket封裝的,一行代碼一行寫出來的。一條簡(jiǎn)單的命令
python-mhttp.server
此時(shí)你的電腦就是一個(gè)簡(jiǎn)單的web服務(wù)器了,可以通過瀏覽器獲得你電腦上的文件。了解了這些,你就可以著手寫一個(gè)最簡(jiǎn)單的web服務(wù)器了,其實(shí)幾行代碼就搞定了。可是你發(fā)現(xiàn)你的代碼一次只能服務(wù)一臺(tái)客戶端,你開始思考該怎么做讓python實(shí)現(xiàn)并發(fā)。
在Python中有三種方式,進(jìn)程、線程和協(xié)程。進(jìn)程寫不說,聊聊線程和協(xié)程。這樣說吧,線程和協(xié)程實(shí)現(xiàn)的功能差不多,但是協(xié)程占用的系統(tǒng)資源更少,它不需要CPU進(jìn)行上下文的切換。所以最好的解決方案便是進(jìn)程加協(xié)程。
這時(shí)候你又開始進(jìn)入了一個(gè)新的學(xué)習(xí)領(lǐng)域,開始了解協(xié)程,從最簡(jiǎn)單的yield關(guān)鍵字開始,接著了解python中的異步模塊,然后到終極異步模塊asyncio,python作者著手開發(fā)的,畢竟現(xiàn)在異步是非?;鸬?。期間,你可能會(huì)使用異步寫些小程序,比如寫個(gè)聊天室,單線程下的并發(fā)。到了最后,你讓你所學(xué)的異步和web服務(wù)器相結(jié)合,使其更加強(qiáng)大,如果只是玩玩的話,完全可以將它搭在你的服務(wù)器上,提供一些簡(jiǎn)單的網(wǎng)頁服務(wù)。如果還想繼續(xù)發(fā)展的話,可以寫個(gè)小型的web框架玩玩。
這時(shí)候,就可以去了解爬蟲了,畢竟服務(wù)端已經(jīng)被你解決了。先寫服務(wù)端有一個(gè)好處,可以從無到有,鍛煉自己寫代碼的水平,爬蟲已經(jīng)封裝的很好了,如果從零開始寫有點(diǎn)小麻煩。還是那句話,慢慢學(xué),如果感興趣,也可以寫個(gè)小型的框架來玩。
接著就可以玩一些高級(jí)一點(diǎn)的,之前我所說的一些和python相關(guān)的編程,有個(gè)高中知識(shí)水平就可以搞了。但是你想玩數(shù)據(jù)分析和機(jī)器學(xué)習(xí)那就需要大學(xué)的知識(shí)儲(chǔ)備了,高數(shù)、線代、統(tǒng)計(jì)學(xué)、概率論等等數(shù)學(xué)知識(shí),這時(shí)候先結(jié)合你之前的爬蟲知識(shí)搞搞簡(jiǎn)單的數(shù)據(jù)分析,然后在慢慢的一步步深入下去,相信那是的你應(yīng)該有了自己明確的目標(biāo)了吧。想要做到這一點(diǎn),最重要的便是堅(jiān)持。
以上內(nèi)容為大家介紹了python學(xué)完基礎(chǔ)學(xué)什么,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。http://www.2667701.com/