Python入門資料
轉載:http://www.jianshu.com/p/7aa1d7fd08d6
一、學會使用搜索引擎,尤其是Google。推薦閱讀文章
《如何用好Google搜索引擎?[email protected]
《十大高明的Google搜索技巧》by-雪影藍風
《如何用好Google》by-李笑來
二、學會提問
推薦閱讀《提問的智慧》by-啄木鳥社區
三、書籍推薦
零基礎
Python官方文檔點擊打開鏈接英語不好的,暫時就先別看了,以後一定肯定要加強英語學習哦;)。
推薦《How to think like a computer scientist》,對應中文版本《Python學習筆記--皮大慶》,非常適合零基礎入門。
推薦 [《Python編程實踐》]
推薦《簡明Python教程》
推薦《笨辦法學 Python (Learn Python The Hard Way)》
有其他編程語言基礎
推薦《Python基礎教程》
推薦Python入門教程-By廖雪峰
進階
推薦Requests 源碼閱讀
更多書籍推薦:
知乎問答:關於 Python 的經典入門書籍有哪些?
V2EX問答:文科生想學Python
Python快速教程
四、視頻推薦
python路由器級聯.mp4
課程介紹
這門課程適用於那些擁有很少或沒有編程經驗的學生,它致力於使學生理解計算機在解決問題中的作用,並且幫助學生,不論其專業,使他們對於能夠完成有用的小程序的目標充滿信心。
五、學習方法
知乎問答:零基礎,應當如何開始學習 Python ?[email protected]
雖然我不是Python高手,但我是零基礎,之前會的都是軟件PS,PPT之類。
如果目的是想成為程序員,參考教學大綱。
如果只是學程序,理解科技,解決工作問題,我的方式可以參考使用:
找到合適的入門書籍,大致讀一次,循環啊判斷啊,常用類啊,搞懂(太難的跳過)
做些簡單習題,字符串比較,讀取日期之類
《Python Cookbook》不錯(太難太無趣的,再次跳過,保持興趣是最重要的,不會的以後可以再學)
加入Python討論群,態度友好笑瞇瞇(很重要,這樣高手才會耐心糾正你錯誤常識)。
很多小問題,糾結許久,對方一句話點播思路,真的節約你很多時間。耐心指教我的好人,超級超級多謝。
解決自己電腦問題。
比如下載美劇,零散下載了2,4,5,8集,而美劇共12集,怎樣找出漏下的那幾集?然後問題分解,1讀取全部下載文件名,2提取集的數字,3數字排序和(1--12)對比,找出漏下的。
時刻記住目的,不是為了當程序員,是為了解決問題。
比如,想偷懶抓網頁內容,用urllib不行,用request也不行,才發現抓取內容涉及那麽多方面(cookie,header,SSL,url,javascript等等),當然可以聽人家勸,回去好好讀書,從頭讀。
或者,不求效率,只求解決,用ie打開網頁再另存為行不行?ie已經渲染過全部結果了。
問題變成:1--打開指定的10個網頁(一行代碼就行)。更復雜的想保存呢?利用已經存在的包,比如PAM30(我的是Python3),直接打開ie,用函數outHTML另存為文本,再用搜索函數(str搜索也行,re正則也行) 找到數據。簡單吧?而且代碼超級短。
保持興趣,用最簡單的方式解決問題,什麽底層驅動,各種交換,留給大牛去寫吧。我們利用已經有的包完成。
耐心讀文檔,並且練習快速讀文檔。拿到新包,找到自己所需要的函數,是需要快速讀一次的。這個不難,讀函數名,大概能猜到是幹嘛的,然後看看返回值,能判斷是不是自己需要的。
寫幫助文件和學習筆記,並發布共享。教別人的時候,其實你已經自己再次思考一次了。
我覺得學程序就像學英文,把高頻率的詞(循環,判斷,常用包,常用函數)搞懂,就能拼裝成自己想要的軟件。
然後,堅持下去。
一定要保持興趣,太復雜的跳過,就像小學數學,小學英語,都是由簡入深。
網絡很平面,無數國際大牛著作好書,關於Python,算法,電腦,網絡,或者程序員思路,或者商業思維(浪潮之巔是本好書)等等,還有國際名校的網絡公開課(中英文字幕翻譯完畢,觀看不是難事),講計算機,網絡,安全,或者安卓系統,什麽都有,只要能持續保持興趣,一點點學習下去,不是難事。
所有天才程序員,都曾是兒童,回到兒童思維來理解和學習。覺得什麽有趣,先學,不懂的,先放著,遇到問題再來學,效果更好。
唯一建議是,不要太貪心,耐心學好一門優雅的語言,再學其它。雖然Javascript做特效很炫,或提某問題時,有大牛建議,用Ruby來寫更好之類,不要改方向。就像老笑話:“要學習遞歸,必須首先理解遞歸。”然後死循環一直下去。堅持學好一門語言,再研究其他。
即使一門語言,跟網絡,數據庫等等相關的部分,若都能學好,再學其他語言,是很快的事情。
另外就是,用學英文的耐心來學計算機,英文遇到不懂的詞,抄下,查詢。
python裏,看到Http,查查定義,看到outHtml,查查定義,跟初學英語時候一樣,不要直接猜意思,因為精確描述性定義,跟含糊自然語有區別的。而新人瞎猜,很容易錯誤理解,wiki,google很有用。
芝麻問答:如何學習Python可以加下QQ群:619--307--290
如何學習python
我們假設你是一個初級程序員, 只懂得一點點的基礎知識, 希望能夠用python來做開發. 這篇文檔就是為了滿足以上目標而寫的.
大綱
按照這篇文檔所指示的任務過一遍, 你就能夠做到:
熟悉python語言, 以及學會python的編碼方式. 熟悉python庫, 遇到開發任務的時候知道如何去找對應的模塊. 知道如何查找和獲取第三方的python庫, 以應付開發任務. 學習步驟
安裝開發環境
如果你在window下, 去下載pythonxy安裝起來, 然後運行python, 進入python解釋環境.
如果你在ubuntu下, 執行: sudo apt-get install python, 然後在命令行下運行python, 進入python解釋環境.
學習方法
作為一名成熟的開發人員, 我學習新東西(假設是pyqt)的習慣方式是:
直接用google搜索pyqt的官方網站. 按照官方網站的說明, 下載pyqt. (如果是用ubuntu, 看看軟件庫裏面是否有足夠新的版本) 下載過程中, 開始閱讀官方網站上面的教程. 一邊看教程, 一遍按照教程使用pyqt. 如果發現教程不夠全面, 用google搜索是否有對應的教學書籍可以看. 示例學習完畢, 開發一個玩具程序, 用來檢驗自己是否需要用到的功能. 開始學習python
我建議你學習的過程也按照上面來,
如果卡在某一關太久, 可以看答案(google python challenge answer), 做完後看看別人的編碼方式和自己有什麽區別.
小項目
做完一遍後, 你會發現已經熟悉了基本的python開發. 然後做點小項目吧. 這裏是一些題目, 挑感興趣的去做.
寫一個簡單的計算器/記賬軟件/掃雷遊戲(用pyqt庫做界面)
寫一個聊天室網站(用webpy框架, jquery刷新新的回復)
寫一個爬蟲, 獲取douban上面所有用戶的地點, 畫地點分布的直方圖(用lxml解析, 保存數據到sqlite裏面去, 用matplotlib畫圖)
FAQ
1: 遇到了問題, 到哪裏求助?
2: 如何查找python的某個功能?
3: 如何用python完成一個任務(比如寫網站)?
4: google: python 寫網站, 或者 google: python web development.
知乎問答:你是如何自學 Python 的?可以加下我們群:619--307--290
階段一:前輩領進門。
第一眼是一個前輩給我看了看Python的代碼,因為自己最早學習的是Java語言,第一眼看到Python的時候,前輩說,“Python是面向對象的”,然後就 打印了幾句代碼。可我怎麽也看不出到底哪裏是“面向對象”的。前輩說“在Python裏,一切皆對象”,我才有點領悟的說道:“原來把什麽看成對象,就是面向對象”,哈哈。
階段二:開始看的是《Dive into Python》、《Leaning python》、《Python Doc》。
因為有很多語言學習經歷,很快就完成了初步語法和使用學習。太復雜的特性還是在使用中逐步掌握的。
階段三:開始使用Python做自己的一些日常工作。
比如Python搜索文件,Python批量處理等,使用最多的還是re模塊和socket相關模塊。寫了大量的例子,讓自己對Python更加喜愛,也更加熟悉。此時翻閱最多的是《Python Doc》的指南。不管是語言參考、庫參考、Demo參考,都有大量可使用的內容,內容質量很高堪比JDK。
階段四:生產上馬。
開始使用Django,Flask,Tornado開發一些web應用,寫一些日常使用的工具包等。逐步提升設計能力,和整體代碼的管理能力。
階段五:更合理的分配好C,Java,Python三門語言各自擅長的部分。
把合適的語言用到合適的地方。盡管一門語言有時候可以搞定所有的,但用擅長的語言解決合適的問題才是效率最高的。這也是“Python的大道至簡”的理念帶給我的幫助和認識。
PS:其中過程中主要的一些方法:
看書。學習的基礎。
自己本地練習。編程還是要實踐出真知。
資料查詢。google,stackoverflow等多關註。
交流。各種論壇上的python group,論壇。最早去的CU,JavaEye,不過現在貌似去的少了。google group必須訂閱。
學習+實踐+總結,掌握語言的法寶。
六、Just Do It
看了這麽多資料了,還沒動手敲代碼?
好吧,最好一篇文章《我在學習編程中犯的兩個最大錯誤》點擊打開鏈接
Just do it 。動手敲代碼吧。
註:本文由《python無量大師》 根據互聯網資料收集整理而成。
七、更新
Python技術博客、招聘、開源軟件、Python中文網站導航
遇到python問題怎麽樣解決?
在線視頻教學(英文)codecademy
英文Python for beginners
Python應用與實踐Python是什麽?誰在用它?相關工具?作者:@吳秦
Python模塊學習相當於翻譯官網文檔
針對有其他語言經驗的人,英文:Learn X in Y minutes中文翻譯Y分鐘學會Python(譯)
PyCoder’s Weekly 中文翻譯說明:文章質量很高
PEP 20 (Python之禪) 的實例說明:code_stype
Unicode之痛必讀
有關 Python 2 和 Sublime Text 中文 Unicode 編碼問題的分析與理解必讀
stackoverflow上Python相關回答整理翻譯
Python語言總結-初級中級高級教程作者:@Crifan Li
Python Guide Python 最佳實踐英文
《碼農周刊》幹貨精選(Python 篇)精選總結
八、爬蟲以及模擬登陸新浪微博
知乎:Python 爬蟲如何入門學習
+Python爬蟲學習系列教程 @崔慶才系列教程,入門、實戰、爬蟲利器介紹、進階
+
Python模擬登錄新浪微薄(使用RSA加密方式和Cookies文件)
一個簡單的分布式新浪微博爬蟲
用python爬蟲抓站的一些技巧總結
使用python爬蟲抓站的一些技巧總結:進階篇
網絡爬蟲系列
九、工具
Windows系統下,Python相關包
Python入門資料