Python入門——針對零基礎學習者的資料推薦
自從上次用python寫了個簡易的、獲取小姐姐圖集的爬蟲,很多人都發私信,求python的學習路徑、推薦書籍、建議的教程等等。所以我這裡做個小小的個人總結,把我曾經看過、我想看的、大家牆裂推薦的書籍和教程發上來,讓大家能更快地掌握python,更快地去編寫自己的python程式。
這個推薦清單主要是針對零基礎的人。如果你對python略懂當然更好,後面也有一些進階類的書籍。
下面推薦的內容全部都是中文版的,英文版的暫時不推薦。有人說,學習語言最好的方式,就是去看官方文件。這句話是絕對“政治正確”的,但是有多少人一看到滿篇的英文單詞,瞬間就覺得學習熱情減半的?我覺得,倒不如先把中文的書籍讀通,然後有一定基礎了,再去查閱英文的文件,這樣反而能有一些自己的心得體會。
下面有些書是英文名字,但內容都是中文的,可以放心閱讀啦。
基礎書籍:
1.Python基礎教程(第2版 修訂版)
python圈子的經典書籍,我也是反覆讀過幾遍,感覺講解的確實比較細緻。
2.Python學習手冊 第4版(learning python)
內容相當系統,屬於大部頭書籍。全書一共1200頁左右,有簡單的內容,也有深入講解的部分。理論內容很多,看起來相對枯燥一些,我個人比較推薦閱讀。
3.Python Cookbook 第3版
這個書名怎麼翻譯,食譜、烹飪手冊?不管了,反正是經典的案頭書。適合有一點點python基礎的人閱讀。這個也不算進階書吧,因為很大篇幅還在講語法和例項,並沒有涉及到太多的黑魔法。
4.像電腦科學家一樣思考Python 第2版 (Think Python: How to Think Like a Computer Scientist)
很經典的python教材,非常適合初學者!這本書的第2版有2個譯本,99%的內容都差不多,只是用詞上的差異。該書第1版是基於python2.x的,第2版是基於3.x的,內容差不多,只是版本上略有不同。
5.跟老齊學Python
這是國人自己寫的書,感覺也挺好的。部分內容可能沒有經典書籍那麼詳細,但是作為入門書籍還是很不錯的!
6.Python 程式設計入門經典 (Beginning Python)
該書是基於python2.6和3.1的,相對老了一些,但是很多示例還是不錯的。個人覺得,不太適合作為第一本書籍,比較適合作為鞏固基礎用的書籍。
7.Python程式設計:從入門到實踐
看了一部分,沒有全部看完,感覺挺好。(好像評論越來越敷衍了。下面的書就不評論了,反正這些作者都是大神,也輪不到我來寫書評。)
8.深入python3 (dive into python3)
9.資料結構和演算法——python語言描述(problem solving with algorithms and data structure usingpython)
10.笨辦法學 Python 第3版 (Learn Python The Hard Way)
11.深入淺出python (Head First Python)
12.父與子的程式設計之旅:與小卡特一起學Python (computer programming for kids and other beginners)
需要特別註釋一下:這書內容相當淺顯易懂,適合作為程式設計入門的書籍,讓你能快速瞭解程式設計世界和python圈子!
13.Python語言及其應用 (introducing python)
14.Python參考手冊 第4版(python essential reference)
這本書實在枯燥,我到現在也沒看完,作為補充書籍看看吧。
15. 21天學通python
典型的標題黨,跟“21天精通c語言”、“15天掌握java”等是一個路數。內容倒是不錯,可以作為平時的書籍看一看。
16.簡明Python教程(A Byte of Python)
這本書寫於十多年前了,很多語法、命令都已經不再使用了,但是整體的教程思路很好,建議補充閱讀。
17.廖雪峰python3教程
google搜尋“python教程”,出來的第一條就是他(也不知道廖老師給google貢獻了多少廣告費,逃)。不過個人不建議零基礎的初學者看,因為感覺學習曲線比較抖,突然某個地方就會出現高難度的示例,這個就尷尬了。建議有一點基礎以後再去觀摩,你就能充分理解廖老師的那些示例了。
18.Python3程式開發指南 第2版 (programming in python 3)
19.零基礎學Python——老齊的python基礎教程
這本書也比較老了,是基於python2.X的,不過作為了解py2.7的書籍,還是很不錯的。
20.Python程式設計快速上手——讓繁瑣工作自動化(automate the boring stuff with python)
這本書看完覺得知識點比較陳舊、分散,個人不是很推薦。但是有些高手推薦閱讀,我也不太理解,先放上吧。
21. C語言入門經典100例(用python實現)
敲黑板:課後作業啊,同學們!
網上有很多流傳面比較廣的教程,有文字類的,有視訊類的。我從其中也受益良多。
進階書籍:
關於python的基礎內容大概就是這些,下面是難度更大一些的教程了。比較慚愧,這裡將近一半的書都還沒有閱讀過,屬於難度比較大的書籍。
1.python標準庫(the python standard library by example)
又是個1000多頁的大部頭書籍,感覺適合在查閱某個陌生庫的用法時使用,沒必要通讀。
2.Python專案開發實戰 第2版
3.Python3多執行緒學習筆記
一份9頁的小冊子,非常適合用來了解python的多執行緒原理和編寫方法。
4.Python核心程式設計 第3版(core python applications programming)
經典書籍,難度比較大。
5.用Python寫網路爬蟲(web scraping with python)
看看“老人”們是怎麼寫爬蟲的,基於python 2.x
6.Python網路資料採集(web scraping with python)
跟上一本書的英文名是一樣的,但主要講資料分析和資料收集。
7.Python資料分析與挖掘實戰
8.Python自動化運維——技術與最佳實踐
9.利用Python進行資料分析(python for data analysis)
10.Python進階(Intermediate Python)
一份100頁的小冊子,寫得相對簡略。
外圍書籍/教程:
下面是我在學習python過程中,閱讀到的、使用到的一些外圍書籍和教程。也許書籍本身不是講python,但是你如果打算進入python這個圈子,你就會不可避免的接觸到他們。
1.html/css/javascript
這個是學習前端的基礎,也是瞭解爬蟲、掌握爬蟲的基礎。
2.django
django作為python圈內最著名的web框架,是必須要了解的。
2.1. 自強學堂Django教程
這是我比較建議的、學習django的教程網站,你跟著博主寫程式碼,如果出現錯誤還可以給他留言,一般都是當天就有回覆,相當地細緻、認真!
2.2. django-girls學習指南
基於python3.5 django1.8的一份學習指南,寫得相對簡單,看起來也沒什麼難度。
2.3. Django之歌:簡易部落格搭建教程
2.5 與django共舞 (tango with django)
該教程是基於py2.7 + dj1.7的。教程的最新版本為英文版,基於django1.10,但是隻有英文版,而且售價10美元,所以很無奈。。。
3.scrapy
著名的爬蟲框架,這個也不用多介紹了吧。
3.1 scrapy cookbook
基於scrapy 0.2.2,最新的scrapy版本已經是1.3了。不過好像沒有看出什麼太大的區別。
3.2 Scrapy 1.0 中文文件
我記得在python圈子裡,有人曾發起過F**k XXX Tutorial的討論,其中scrapy和django都名列其中,因為他們都屬於作者相當牛X,但是教程寫得相當反人類。
專業的解析器,用於構造元素樹,便於從文件中提取資訊。基本屬於寫爬蟲必備技能。
5. css選擇器
是用來從元素樹中提取資訊的,老程式碼裡比較常見,在新程式碼中用的少一些,也許是因為比bs、xpath複雜,所以逐漸被替代了吧。
6.關於http/tcp/ip
這裡推薦2本書,分別是《圖解http》、《圖解tcp/ip》。
7.關於linux:以下都是比較基礎的linux教程。
鳥哥的Linux私房菜——基礎學習篇(第三版)
鳥哥的Linux私房菜——伺服器架設篇
循序漸進Linux(第2版)
Linux命令列與shell指令碼程式設計大全
跟阿銘學Linux
8. lxml:這是比較常用的python解析庫,通常requests+lxml+xpath號稱爬蟲三賤客,requests負責偷取,lxml負責拆解,xpath負責拿回家。
如果英文水平還可以,建議閱讀原版的英文教程,因為有些函式、方法在中文教程裡沒寫。或者你可以等我寫下一個教程,時間未知罷了。
9.關於sql:經典的結構查詢語言,跟各種關係型資料庫緊密結合,屬於必會內容。用的最多的就數mysql了,推薦以下書籍:
SQL必知必會 第4版
深入淺出MySQL——資料庫開發、優化與管理維護(第2版)
10. xpath
11.requests:強大的網路請求庫,被看作是urllib的替代者,確實很好用。
12.mongodb:非關係型資料庫的排頭兵,最近也是越來越火。推薦:
MongoDB權威指南(第2版)
13.redis:又一個數據庫。這個我還真不太會用,所以就不評論了。
Redis入門指南 第2版
redis設計與實現(第二版)
Redis實戰
14.selenium:自動化測試工具,高階爬蟲、反反爬蟲必備。推薦書籍:
selenium2 python自動化測試
以上基本都是我的個人學習記錄和收藏,也歡迎各位提出建議和批評意