Python快速教程 尾聲

做者: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的主體內容大體能夠分爲如下幾個部分:編程

  1. 面向過程。包括基本的表達式,if語句,循環,函數等。若是你有任何一個語言的基礎,特別是C語言的基礎,這一部分就是分分鐘瞭解下Python規定的事。若是你沒有語言基礎,建議用Python Programming爲參考書。這本書是計算機導論性質的教材,不須要編程基礎。
  2. 面向對象,包括面向對象的基本概念,類,方法,屬性,繼承等。Python是面向對象的語言,「一切皆對象」。面向對象是很難迴避的。Python的面向對象機制是相對比較鬆散的,不像Java和C++那麼嚴格。好處是容易學,容易維護,壞處是容易犯錯。
  3. 應用功能,包括IO,數據容器如表和詞典,內置函數,模塊,格式化字符串等。這些在其它語言中也常常出現,有比較強的實用性。
  4. 高級語法,上下文管理器,列表推導,函數式編程,裝飾器,特殊方法等。這些語法並非必須的,你能夠用前面比較基礎的語法實現。學這些高級語法的主要緣由是:它們太方便了。好比列表推導一行能夠作到的事情,用循環結構要好幾行才行。


學習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

相關文章
相關標籤/搜索