首頁 後端開發 Python教學 如何有系統地自學Python 語言

如何有系統地自學Python 語言

Dec 02, 2016 am 11:58 AM
python 自學

零基礎情況下,學一門語言充實下自己,Python,簡潔、優美、容易使用,是一個很好的選擇。那麼該如何有系統地自學Python呢?

有的人很想學好Python,一方面被瑣事糾纏,一直沒能動手,另一方面,擔心學習成本太高,心裡默默敲著退堂鼓?

 幸運的是,Python是一門初學者友善的程式語言,想要完全掌握它,你不必花太多的時間和精力。

Python的設計哲學之一就是簡單易學,體現在兩個方面:

語法簡潔明了:相對Ruby和Perl,它的語法特性不多不少,大多數都很簡單直接,不玩兒玄學。

切入點很多:Python可以讓你可以做很多事情,科學計算和數據分析、爬蟲、Web網站、遊戲、命令列實用工具等等等等,總有一個是你感興趣並且願意投入時間的。

廢話不多說,學會一門語言的捷徑只有一個:Getting Started

1、起步階段

任何一種程式語言都包含兩個部分:硬知識和軟知識,起步階段的主要任務是掌握硬知識。任何一種程式語言都包含兩個部分:硬知識和軟知識,起步階段的主要任務是掌握硬知識。

1、硬知識

「硬知識」指的是程式語言的語法、演算法和資料結構、程式設計範式等,例如:變數和類型、循環語句、分支、函數、類別。這部分知識也是具有普適性的,看起來是掌握了一種文法,實際上是建立了一種思考。例如:讓一個Java程式設計師去學習Python,他可以很快的將Java中的學到的物件導向的知識map到Python中來,因此能夠快速掌握Python中物件導向的特性。
如果你是剛開始學習程式設計的新手,一本可靠的文法書是非常重要的。它看起來可能非常枯燥乏味,但對於建立穩固的程式設計思維是必不可少。
下面列出了一些適合初學者入門的教學材料:

❖「笨方法學Python」:http://learnpythonthehardway.org/book/
這本書在講解Python的語法成分時,還附帶大量可實踐的例子,非常適合快速起步。

❖「The Hitchhiker’s Guide to Python!」:The Hitchhiker’s Guide to Python!
這本指南著重於Python的最佳實踐,不管你是Python專家還是新手,都能獲得極大的幫助。

❖「Python官方文件」:Our Documentation
實務大部分問題,都可以在官方文件中找到答案。

❖ 輔助工具:Python Tutor
一個Python物件視覺化的項目,用圖形輔助你理解Python中的各種概念。

Python的哲學:

用一種方法,最好是只有一種方法來做一件事。

學習也是一樣,雖然推薦了多種學習資料,但實際學習的時候,最好只選擇其中的一個,堅持看完。

必要的時候,可能需要閱讀講解資料結構和演算法的書,這些知識對於理解和使用Python中的物件模型有著很大的幫助。


2、軟知識
「軟知識」則是特定語言環境下的語法技巧、類別庫的使用、IDE的選擇等等。這一部分,即使完全不了解不會使用,也不會妨礙你去編程,只不過寫出的程序,看上去顯得「傻」了些。

對這些知識的學習,取決於你嘗試解決的問題的領域和深度。對初學者而言,起步階段極易走火,或者在選擇Python版本時徘徊不決,一會兒看2.7一會兒又轉到3.0,或者徜徉在類庫的大海中無法自拔,Scrapy,Numpy,Django什麼都要試試,或者參與編輯器聖戰、大括號縮進探究、操作系統辯論賽等無意義活動,或者整天跪舔語法糖,老想著怎麼一行代碼把所有的事情做完,或者去構想聖潔的效能安全通用性健壯性全部滿分的解決方案。

很多「大牛」都會告誡初學者,用這個用那個,少走彎路,這樣反而把初學者推向了真正的彎路。
不如告訴初學者,學習本來就是個需要你去走彎路出Bug,只能腳踏實地,沒有奇蹟只有狗屎的過程。

選擇一個方向先走下去,哪怕髒醜差,走不動了再看看有沒有更好的解決途徑。

自己走了彎路,你才知道這麼做的好處,才能理解為什麼人們可以手寫狀態機去匹配卻偏要發明正則表達式,為什麼面向過程可以解決卻偏要面向對象,為什麼我可以操縱每一根指針卻偏要自動管理內存,為什麼我可以嵌套回調卻偏要用Promise...

更重要的時,你會明白,高層次的解決方法都是對低層次的封裝,並不是任何情況下都是最有效最適合的。

技術湧進就像波浪一樣,那些陳舊的封存已久的技術,消退了遲早還會湧回的。就像現在行動端應用、手遊和HTML5的火熱,某些方面不正在重演過去PC的那些歷史麼?

因此,不要擔心自己走錯路誤了終身,堅持並保持進步才是正道。

起步階段的核心任務是掌握硬知識,軟知識做適當了解,有了穩固的根,粗壯的枝幹,才能長出濃密的葉子,結出甜美的果實。

2、發展階段

完成了基礎知識的學習,必定會感到一陣空虛,懷疑這些語法知識是不是真的有用。
沒錯,你的懷疑是非常正確的。要讓Python發揮出它的價值,當然不能停留在文法層面。
發展階段的核心任務,就是「跳出Python,擁抱世界」。
在你面前會有多個分支:科學計算和數據分析、爬蟲、Web網站、遊戲、命令列實用工具等等等等,這些都不是僅僅知道Python語法就能解決的問題。
拿爬蟲舉例,如果你對電腦網絡,HTTP協議,HTML,文字編碼,JSON一無所知,你能做好這部分的工作麼?而你在起步階段的基礎知識也同樣重要,如果你連循環遞歸怎麼寫都還要查文檔,連BFS都​​不知道怎麼實現,這就像工匠做石凳每次起錘都要思考錘子怎麼使用一樣,非常低效。
在這個階段,不可避免要接觸大量類庫,閱讀大量書籍的。

°1類別函式庫方面
「Awesome Python專案」:vinta/awesome-python · GitHub
這裡列出了你在嘗試解決各種實際問題時,Python社群已有的工具型類別庫,如下圖所示:

 如何有系統地自學Python 語言

你可以依照實際需求,尋找你需要的類別庫。
至於相關類別庫如何使用,必須掌握的技能便是閱讀文件。由於開源社群大多數文件都是英文寫成的,所以,英文不好的同學,需要惡補下。


°2書籍方面
這裡我只列出一些我覺得比較有一些幫助的書籍,詳細的請看豆瓣的書評:
科學和數據分析:
❖「集體智慧程式設計」:集體智慧程式設計 
「數學之美」:數學之美 
❖「統計學習方法」:統計學習方法 
❖「Pattern Recognition And Machine Learning」:Pattern Recognition And Machine Learning 
❖「資料科學實戰」:資料科學實務:資訊檢索導論 
爬蟲:
❖「HTTP 權威指南」:HTTP權威指南 
Web 網站:
❖「HTML & CSS 設計與建置網站」:HTML & CSS設計與建置網站 

... 

列到這裡已經不需要繼續下去了。
聰明的你一定會發現上面的大部分書籍,並不是講 Python 的書,而更多的是專業知識。
事實上,這裡所謂“跳出 Python,擁抱世界”,其實是發現 Python 和專業知識相結合,能夠解決很多實際問題。這個階段能走到什麼程度,更多的取決於自己的專業知識。   

3、 深入階段

這個階段的你,對 Python 幾乎瞭如指掌,那麼你一定知道 Python 是用 C 語言實現的。


可是 Python 物件的「動態特徵」是怎麼用相對底層,連自動記憶體管理都沒有的C語言實現的呢?這時候就不能停留在表面了,勇敢的拆開 Python 的黑盒子,深入到語言的內部,去看它的歷史,讀它的源碼,才能真正理解它的設計思路。

這裡推薦一本書:
「Python 源碼剖析」:Python源碼剖析 
這本書把Python 源碼中最核心的部分,給出了詳細的闡釋,不過閱讀此書需要對C 語言內存模型和指針有著很好的理解。

另外,Python 本身就是一門雜糅多種範式的動態語言,也就是說,相對於 C 的過程式、Schema 和 Haskell 等的函數式、Java 基於類別的物件導向而言,它都不夠純粹。換而言之,程式語言的“道學”,在 Python 中只能有限的體悟。學習某種程式設計範式時,從那些面向這種範式更純粹的語言出發,才能有更深刻的理解,也能了解到 Python 語言的根源。

這裡推薦一門公開課
「程式設計範式」:史丹佛大學公開課:程式設計範式
講師高屋建瓴,從各種程式設計範式的代表語言出發,給出了每種程式設計範式最核心的想法。

值得一提的是,這門課程對C語言有非常深入的講解,例如C語言的範型和記憶體管理。這些知識,對閱讀 Python 原始碼也有大有幫助。

Python 的許多最佳實踐都隱藏在那些眾所周知的框架和類別庫中,例如 Django、Tornado 等等。在它們的原始碼中淘金,也是個不錯的選擇。

¶ 最後的話
每個人學程式設計的道路都是不一樣的,其實大都殊途同歸,沒有迷路的人只有不能堅持的人。雖然聽起來有點雞湯,但這是事實。


本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1662
14
CakePHP 教程
1419
52
Laravel 教程
1311
25
PHP教程
1261
29
C# 教程
1234
24
PHP和Python:解釋了不同的範例 PHP和Python:解釋了不同的範例 Apr 18, 2025 am 12:26 AM

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

在PHP和Python之間進行選擇:指南 在PHP和Python之間進行選擇:指南 Apr 18, 2025 am 12:24 AM

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

PHP和Python:深入了解他們的歷史 PHP和Python:深入了解他們的歷史 Apr 18, 2025 am 12:25 AM

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

Python vs. JavaScript:學習曲線和易用性 Python vs. JavaScript:學習曲線和易用性 Apr 16, 2025 am 12:12 AM

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

sublime怎麼運行代碼python sublime怎麼運行代碼python Apr 16, 2025 am 08:48 AM

在 Sublime Text 中運行 Python 代碼,需先安裝 Python 插件,再創建 .py 文件並編寫代碼,最後按 Ctrl B 運行代碼,輸出會在控制台中顯示。

vscode在哪寫代碼 vscode在哪寫代碼 Apr 15, 2025 pm 09:54 PM

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

visual studio code 可以用於 python 嗎 visual studio code 可以用於 python 嗎 Apr 15, 2025 pm 08:18 PM

VS Code 可用於編寫 Python,並提供許多功能,使其成為開發 Python 應用程序的理想工具。它允許用戶:安裝 Python 擴展,以獲得代碼補全、語法高亮和調試等功能。使用調試器逐步跟踪代碼,查找和修復錯誤。集成 Git,進行版本控制。使用代碼格式化工具,保持代碼一致性。使用 Linting 工具,提前發現潛在問題。

notepad 怎麼運行python notepad 怎麼運行python Apr 16, 2025 pm 07:33 PM

在 Notepad 中運行 Python 代碼需要安裝 Python 可執行文件和 NppExec 插件。安裝 Python 並為其添加 PATH 後,在 NppExec 插件中配置命令為“python”、參數為“{CURRENT_DIRECTORY}{FILE_NAME}”,即可在 Notepad 中通過快捷鍵“F6”運行 Python 代碼。

See all articles