做者:Vamei 出處:http://www.cnblogs.com/vamei 歡迎轉載,也請保留這段聲明。謝謝!html
寫了將近兩年的Python快速教程,終於大概成形。這一系列文章,包括Python基礎、標準庫、Django框架。前先後後的文章,包含了Python最重要的組成部分。這一內容的跨度遠遠超過個人預期,也超過了我看過的任何Python相關書籍。最初動筆的緣由,除了要總結,還對不少Python書和教程以爲不滿意,以爲太晦澀,又不夠全面。如今,我比較肯定,參考我在Linux、網絡、算法方面的總結,讀者能夠在無基礎的背景下,在短期,有深度的學習Python了。python
這一篇也是尾聲。準備在一個長的時間內,中止更新Python快速教程,把精力集中在其它方面。畢竟一件事情作久了,會缺少自我突破。編程是一個頗有創新性,很須要突破自個人工做。在一個方面待久了,本身都會以爲發餿。而未知的計算機領域中,還有不少有趣的技術值得更深刻的學習。另外一方面,Python用舒服了,致使我一想到問題,基本都是Python的思路。這樣,Python就成了個人舒服區域。我懶得去想,Java會如何解決,Scala會如何解決,C會如何解決。成長的空間被壓縮得很小。爲了本身能前進,要打破這個溫馨區。web
謝謝各位閱讀這些的Python文章。大家的支持是我走到如今的最大動力。但願這些技術文章能點綴你的閒暇。若是再能有一些具體的幫助,那就最好不過了。算法
下面是我在知乎回答的一個帖子「你是如何自學Python的」,略作修改,做爲總結:數據庫
我是自學的Python。從對Python一無所知,到在博客上寫Python相關的系列文章,期間有很多門檻,但也充滿樂趣。樂趣是自學的最大動力。Python是一個容易編寫,又功能強大的動態語言。使用Python,能夠在短短几行內實現至關強大的功能。經過本身寫一些小程序,迅速的看到效果,發現問題,這是學習Python最便利的地方。在《黑客與畫家》中,Paul也說,動態語言能夠給Hacker們更多塗塗畫畫的快感。這深得我心。
在學習Python以前,能夠了解一下Python的特色和設計理念(Python簡史)。在設計之初,Python就試圖在複雜、強大的C和方便、功能有限的bash之間,找到一個平衡點。Python的語法比較簡單,用起來很方便,所以有些人把它看成腳本語言使用。但Python要比普通的腳本語言功能強大不少。經過良好的可拓展性,Python的功能至關全面,應用面很廣:web服務器,網絡爬蟲,科學運算,機器學習,遊戲開發…… 固然,天下沒有免費的午飯,也沒有完美的語言,Python爲了達到上述兩點,有意的犧牲了Python的運行速度。若是你是在編寫高業務量、運算量的程序,可能Python並非最好的選擇。
-----
Python的主體內容大體能夠分爲如下幾個部分:編程
學習Python主體最好的參考書是Learning Python,它很是全面,滿滿的都是乾貨。雖然很厚,讀起來並不難讀。另外一個是參考官網的教程Python.org
Python號稱「Battery Included",也就是說,功能都已經包含在了語言中。這一自信,主要來自Python功能全面的標準庫。標準庫提供了許多功能模塊,每一個模塊是某一方面功能的接口,好比文件管理,操做系統互動,字符處理,網絡接口,編碼加密等等。
The Python Standard Library中,你能夠看到標準庫模塊的列表。這裏也是標準庫最好的學習資料。若是想找書,我只看到過兩本關於標準庫的:
Python Essential Reference
The Python Standard Library by Example
說實話,這兩本都不算很好的標準庫教材,而標準庫的參考書也確實很難寫。由於標準庫只是調用功能的接口,最終實現的是Python和系統的互動。這須要很強的系統知識,好比文件系統知識,進程管理,http原理,socket編程,數據庫原理…… 若是這些知識都已經準備充分,那麼標準庫學起來徹底沒有難度。然而,這些背景知識的學習曲線,要遠遠陡過Python自己。
更深刻的Python學習也是如此,須要大量的背景知識,而不止是Python自身。若是你對Python的拓展性感興趣,能夠多多嘗試混合編程。若是你對Python的編譯和運行機制感興趣,你能夠往Python底層這一深度挖,看看編譯器是怎麼作的。若是你對應用感興趣,你能夠多學習幾個本身用的上的第三方包。學到這個時候,拼的是境界,也沒有什麼定法。廣闊空間,留待探索。
基本上,學過主體內容以後,Python仍是要靠作項目來練習。有很多小練習題類型的資料,好比Python Cookbook。但更好的方式是本身去想一些應用場景,用Python來解決。好比:網頁爬蟲
Python功能全面,因此不要擔憂本身想的問題Python解決不了 (基本上Python解決不了的問題,別的語言也沒戲)。好比我學習多線程的動力,就由於要並行的下載大量的文件。基本上一個項目下來,會用到Python好幾塊的內容,知識會特別鞏固。
最後,和其它任何知識的學習同樣,筆記和總結很重要。在看參考書和看網頁時,能夠作一些筆記。等到學了一段時間後,能夠把筆記整理成更有條理的參考卡片(reference card),或者寫博客。小程序
長路漫漫,與諸君共勉。bash