真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

go語(yǔ)言創(chuàng)建空矩陣 go語(yǔ)言創(chuàng)建對(duì)象

如何系統(tǒng)地自學(xué) Python

是否非常想學(xué)好 Python,一方面被瑣事糾纏,一直沒(méi)能動(dòng)手,另一方面,擔(dān)心學(xué)習(xí)成本太高,心里默默敲著退堂鼓?

創(chuàng)新互聯(lián)公司2013年至今,先為景泰等服務(wù)建站,景泰等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為景泰企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

幸運(yùn)的是,Python 是一門初學(xué)者友好的編程語(yǔ)言,想要完全掌握它,你不必花上太多的時(shí)間和精力。

Python 的設(shè)計(jì)哲學(xué)之一就是簡(jiǎn)單易學(xué),體現(xiàn)在兩個(gè)方面:

語(yǔ)法簡(jiǎn)潔明了:相對(duì) Ruby 和 Perl,它的語(yǔ)法特性不多不少,大多數(shù)都很簡(jiǎn)單直接,不玩兒玄學(xué)。

切入點(diǎn)很多:Python 可以讓你可以做很多事情,科學(xué)計(jì)算和數(shù)據(jù)分析、爬蟲(chóng)、Web 網(wǎng)站、游戲、命令行實(shí)用工具等等等等,總有一個(gè)是你感興趣并且愿意投入時(shí)間的。

廢話不多說(shuō),學(xué)會(huì)一門語(yǔ)言的捷徑只有一個(gè): Getting Started

? 起步階段

任何一種編程語(yǔ)言都包含兩個(gè)部分:硬知識(shí)和軟知識(shí),起步階段的主要任務(wù)是掌握硬知識(shí)。

硬知識(shí)

“硬知識(shí)”指的是編程語(yǔ)言的語(yǔ)法、算法和數(shù)據(jù)結(jié)構(gòu)、編程范式等,例如:變量和類型、循環(huán)語(yǔ)句、分支、函數(shù)、類。這部分知識(shí)也是具有普適性的,看上去是掌握了一種語(yǔ)法,實(shí)際是建立了一種思維。例如:讓一個(gè) Java 程序員去學(xué)習(xí) Python,他可以很快的將 Java 中的學(xué)到的面向?qū)ο蟮闹R(shí) map 到 Python 中來(lái),因此能夠快速掌握 Python 中面向?qū)ο蟮奶匦浴?/p>

如果你是剛開(kāi)始學(xué)習(xí)編程的新手,一本可靠的語(yǔ)法書是非常重要的。它看上去可能非??菰锓ξ?,但對(duì)于建立穩(wěn)固的編程思維是必不可少。

下面列出了一些適合初學(xué)者入門的教學(xué)材料:

廖雪峰的 Python 教程 ? ?Python 中文教程的翹楚,專為剛剛步入程序世界的小白打造。 ?

笨方法學(xué) Python ? ?這本書在講解 Python 的語(yǔ)法成分時(shí),還附帶大量可實(shí)踐的例子,非常適合快速起步。 ?

The Hitchhiker’s Guide to Python! ? ?這本指南著重于 Python 的最佳實(shí)踐,不管你是 Python 專家還是新手,都能獲得極大的幫助。 ?

Python 的哲學(xué):

用一種方法,最好是只有一種方法來(lái)做一件事。

學(xué)習(xí)也是一樣,雖然推薦了多種學(xué)習(xí)資料,但實(shí)際學(xué)習(xí)的時(shí)候,最好只選擇其中的一個(gè),堅(jiān)持看完。

必要的時(shí)候,可能需要閱讀講解數(shù)據(jù)結(jié)構(gòu)和算法的書,這些知識(shí)對(duì)于理解和使用 Python 中的對(duì)象模型有著很大的幫助。

軟知識(shí)

“軟知識(shí)”則是特定語(yǔ)言環(huán)境下的語(yǔ)法技巧、類庫(kù)的使用、IDE的選擇等等。這一部分,即使完全不了解不會(huì)使用,也不會(huì)妨礙你去編程,只不過(guò)寫出的程序,看上去顯得“傻”了些。

對(duì)這些知識(shí)的學(xué)習(xí),取決于你嘗試解決的問(wèn)題的領(lǐng)域和深度。對(duì)初學(xué)者而言,起步階段極易走火,或者在選擇 Python 版本時(shí)徘徊不決,一會(huì)兒看 2.7 一會(huì)兒又轉(zhuǎn)到 3.0,或者徜徉在類庫(kù)的大海中無(wú)法自拔,Scrapy,Numpy,Django 什么都要試試,或者參與編輯器圣戰(zhàn)、大括號(hào)縮進(jìn)探究、操作系統(tǒng)辯論賽等源仔無(wú)意義活動(dòng),或者整天跪舔語(yǔ)法糖,老想著怎么一行代碼把所有的事情做完,或者去構(gòu)想圣潔的性能安全通用性健壯性全部滿分的解決方案。

很多“大?!倍紩?huì)告誡初學(xué)者,用這個(gè)用那個(gè),少走彎路,這樣反而把初學(xué)者推向了真正的彎路。

還不如告訴初學(xué)者,學(xué)習(xí)本來(lái)就是個(gè)需要你去走彎路出 Bug,只能腳踏實(shí)地,沒(méi)有奇跡只有狗屎的過(guò)程。

選擇一個(gè)方向先走下去,哪怕臟丑差,走不動(dòng)了再看看有沒(méi)有更好的解決途徑。

自己走了彎路,你才知道這么做的好處,才能理解為什么人們可以手寫狀態(tài)機(jī)去匹配卻偏要發(fā)明正則表達(dá)式,為什么面向過(guò)程可以解決卻偏要面向?qū)ο?,為什么我可以操縱每一根指針卻偏要自動(dòng)管理內(nèi)存,為什么我可以嵌套回調(diào)源皮卻偏要用 Promise...

更重要的是,你會(huì)明白,高層次的解決方法都是對(duì)低層次的封裝,并不是任何情況下都是雹裂差最有效最合適的。

技術(shù)涌進(jìn)就像波浪一樣,那些陳舊的封存已久的技術(shù),消退了遲早還會(huì)涌回的。就像現(xiàn)在移動(dòng)端應(yīng)用、手游和 HTML5 的火熱,某些方面不正在重演過(guò)去 PC 的那些歷史么?

因此,不要擔(dān)心自己走錯(cuò)路誤了終身,堅(jiān)持并保持進(jìn)步才是正道。

起步階段的核心任務(wù)是掌握硬知識(shí),軟知識(shí)做適當(dāng)了解,有了穩(wěn)固的根,粗壯的枝干,才能長(zhǎng)出濃密的葉子,結(jié)出甜美的果實(shí)。

? 發(fā)展階段

完成了基礎(chǔ)知識(shí)的學(xué)習(xí),必定會(huì)感到一陣空虛,懷疑這些語(yǔ)法知識(shí)是不是真的有用。

沒(méi)錯(cuò),你的懷疑是非常正確的。要讓 Python 發(fā)揮出它的價(jià)值,當(dāng)然不能停留在語(yǔ)法層面。

發(fā)展階段的核心任務(wù),就是“跳出 Python,擁抱世界”。

在你面前會(huì)有多個(gè)分支:科學(xué)計(jì)算和數(shù)據(jù)分析、爬蟲(chóng)、Web 網(wǎng)站、游戲、命令行實(shí)用工具等等等等,這些都不是僅僅知道 Python 語(yǔ)法就能解決的問(wèn)題。

拿爬蟲(chóng)舉例,如果你對(duì)計(jì)算機(jī)網(wǎng)絡(luò),HTTP 協(xié)議,HTML,文本編碼,JSON 一無(wú)所知,你能做好這部分的工作么?而你在起步階段的基礎(chǔ)知識(shí)也同樣重要,如果你連循環(huán)遞歸怎么寫都還要查文檔,連 BFS 都不知道怎么實(shí)現(xiàn),這就像工匠做石凳每次起錘都要思考錘子怎么使用一樣,非常低效。

在這個(gè)階段,不可避免要接觸大量類庫(kù),閱讀大量書籍的。

類庫(kù)方面

「Awesome Python 項(xiàng)目」:vinta/awesome-python · GitHub

這里列出了你在嘗試解決各種實(shí)際問(wèn)題時(shí),Python 社區(qū)已有的工具型類庫(kù),如下圖所示:

請(qǐng)點(diǎn)擊輸入圖片描述

vinta/awesome-python

你可以按照實(shí)際需求,尋找你需要的類庫(kù)。

至于相關(guān)類庫(kù)如何使用,必須掌握的技能便是閱讀文檔。由于開(kāi)源社區(qū)大多數(shù)文檔都是英文寫成的,所以,英語(yǔ)不好的同學(xué),需要惡補(bǔ)下。

書籍方面

這里我只列出一些我覺(jué)得比較有一些幫助的書籍,詳細(xì)的請(qǐng)看豆瓣的書評(píng):

科學(xué)和數(shù)據(jù)分析:

?「集體智慧編程」:集體智慧編程 (豆瓣)

?「數(shù)學(xué)之美」:數(shù)學(xué)之美 (豆瓣)

?「統(tǒng)計(jì)學(xué)習(xí)方法」:統(tǒng)計(jì)學(xué)習(xí)方法 (豆瓣)

?「Pattern Recognition And Machine Learning」:Pattern Recognition And Machine Learning (豆瓣)

?「數(shù)據(jù)科學(xué)實(shí)戰(zhàn)」:數(shù)據(jù)科學(xué)實(shí)戰(zhàn) (豆瓣)

?「數(shù)據(jù)檢索導(dǎo)論」:信息檢索導(dǎo)論 (豆瓣)

爬蟲(chóng):

?「HTTP 權(quán)威指南」:HTTP權(quán)威指南 (豆瓣)

Web 網(wǎng)站:

?「HTML CSS 設(shè)計(jì)與構(gòu)建網(wǎng)站」:HTML CSS設(shè)計(jì)與構(gòu)建網(wǎng)站 (豆瓣)

...

列到這里已經(jīng)不需要繼續(xù)了。

聰明的你一定會(huì)發(fā)現(xiàn)上面的大部分書籍,并不是講 Python 的書,而更多的是專業(yè)知識(shí)。

事實(shí)上,這里所謂“跳出 Python,擁抱世界”,其實(shí)是發(fā)現(xiàn) Python 和專業(yè)知識(shí)相結(jié)合,能夠解決很多實(shí)際問(wèn)題。這個(gè)階段能走到什么程度,更多的取決于自己的專業(yè)知識(shí)。

? 深入階段

這個(gè)階段的你,對(duì) Python 幾乎了如指掌,那么你一定知道 Python 是用 C 語(yǔ)言實(shí)現(xiàn)的。

可是 Python 對(duì)象的“動(dòng)態(tài)特征”是怎么用相對(duì)底層,連自動(dòng)內(nèi)存管理都沒(méi)有的C語(yǔ)言實(shí)現(xiàn)的呢?這時(shí)候就不能停留在表面了,勇敢的拆開(kāi) Python 的黑盒子,深入到語(yǔ)言的內(nèi)部,去看它的歷史,讀它的源碼,才能真正理解它的設(shè)計(jì)思路。

這里推薦一本書:

「Python 源碼剖析」:Python源碼剖析 (豆瓣)

這本書把 Python 源碼中最核心的部分,給出了詳細(xì)的闡釋,不過(guò)閱讀此書需要對(duì) C 語(yǔ)言內(nèi)存模型和指針有著很好的理解。

另外,Python 本身是一門雜糅多種范式的動(dòng)態(tài)語(yǔ)言,也就是說(shuō),相對(duì)于 C 的過(guò)程式、 Haskell 等的函數(shù)式、Java 基于類的面向?qū)ο蠖?,它都不夠純粹。換而言之,編程語(yǔ)言的“道學(xué)”,在 Python 中只能有限的體悟。學(xué)習(xí)某種編程范式時(shí),從那些面向這種范式更加純粹的語(yǔ)言出發(fā),才能有更深刻的理解,也能了解到 Python 語(yǔ)言的根源。

這里推薦一門公開(kāi)課

「編程范式」:斯坦福大學(xué)公開(kāi)課:編程范式

講師高屋建瓴,從各種編程范式的代表語(yǔ)言出發(fā),給出了每種編程范式最核心的思想。

值得一提的是,這門課程對(duì)C語(yǔ)言有非常深入的講解,例如C語(yǔ)言的范型和內(nèi)存管理。這些知識(shí),對(duì)閱讀 Python 源碼也有大有幫助。

Python 的許多最佳實(shí)踐都隱藏在那些眾所周知的框架和類庫(kù)中,例如 Django、Tornado 等等。在它們的源代碼中淘金,也是個(gè)不錯(cuò)的選擇。

? ?最后的話

每個(gè)人學(xué)編程的道路都是不一樣的,其實(shí)大都殊途同歸,沒(méi)有迷路的人只有不能堅(jiān)持的人!

希望想學(xué) Python 想學(xué)編程的同學(xué),不要猶豫了,看完這篇文章,

Just Getting Started ??。?!


網(wǎng)站標(biāo)題:go語(yǔ)言創(chuàng)建空矩陣 go語(yǔ)言創(chuàng)建對(duì)象
URL網(wǎng)址:http://weahome.cn/article/dspgjde.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部