其實一直想寫點Python入門方面的文章,畢竟讀者裡初學Python的很多,由於網上已有好些Python入門文章,我找不到好的切入點,寫些重複的內容也沒啥意義。這兩天有些思路就急切的寫下來了,希望對猿人學Python的讀者朋友有所啟發。
先說下我用Python的經歷,我 2009 年開始用 Python 寫爬蟲和資料探勘,那時的工作是做輿情分析和問答系統。最近6年時間做Python web開發和繼續寫爬蟲,順帶做產品運營工作。 至今用Python也有10年了。那時的 Python 2.7 是主流,Python 3.0 剛出來,根本沒啥人用,因為3.0不向後相容和很多第三方庫都不支援。
現在Python 3的使用已經是絕對主流了, 所以學習的話學Python 3了吧。把一個專案從Python 2改造成Python 3的過程是很痛苦的,不是重新修改一下語法那麼簡單。
過去幾年我每年都會面試一些候選Pythoner ,從中選出合適的開發者。一些被聘用的面試者前一份職業可能跟猿人學的讀者朋友有相似之處, 這些人中有的是學氣象的,有的是在海上做石油勘探的,有的曾經是開大貨車的,有的是從部隊轉業出來的。我都把他們改造成了合格的Python developer。那個開大貨的後面被我發掘,成為了技術部的負責人。
說到這感覺我是想要賣課的一樣了,別誤會啊,交代一下經歷的意思是,我有實際經驗能體會和知道新手怎麼入門和進階的,不是胡說。
一、關於Pyton入門書籍
其實網上Python教程挺多的,Python入門書籍我推薦《a byte of Python》,這是一本非常薄和精煉的書籍,國外很多Python大佬對他的溢美之詞我就不截圖了,哈佛和MIT等大學使用它作為教材。我也只看過這一本Python書籍,我在2009年用了一個下午的時間看完了它的英語電子版,就開始練手寫程式碼了,可見它是多麼的精煉和短薄。它有中文譯本,叫《簡明 Python 教程》。中英文電子版都是免費的。公眾號後臺回覆:書籍 。有它們的下載地址。
書籍多了也看不完,一本書要反覆讀,程式設計類書籍裡面的程式碼,要自己手動敲進電腦,執行除錯透過,看懂每一行程式碼。
二、為什麼入門了Python語法熟練了還寫不出程式
那是練得不夠多,程式碼寫得不夠,光看書,看影片不大量練習是不可能的。書籍上,資料上的程式碼要用手一行一行敲,執行時可能會報錯,執行結果不一致。這就需要除錯程式,不要怕程式出Bug,除錯Bug,那是作為程式設計師的常態生活。也是進階的一個重要手段。善用搜尋引擎,你遇到的問題,絕大部分在網上已經瞭解決方案了。要去看程式報錯時的錯誤棧提示,會告訴你程式第幾行,出了什麼問題。
如果沒有報錯,是程式邏輯錯誤的話,如果不會用IDE的除錯工具的話,沒關係,最笨的除錯方法就是給每一行都加print列印,把關鍵變數值列印出來,然後分析這些值跟你的設想是不是一致的,就知道程式邏輯錯在哪裡了。
記得有個讀者朋友問我一個爬蟲抽取網頁的問題,抽取不出來他想要的資訊,他一直在生看程式碼排查抽取邏輯那一塊程式碼,我讓他把前面關鍵變數的值列印出來,他自己一下就明白錯誤了。是因為他儲存網頁的字串是空的,而抽取網頁資訊那一塊的程式碼沒有問題的。
一個將來以寫程式碼為職業的大學生,畢業要找到一份不錯的程式設計工作,大學幾年的編碼量要達到6-10萬行。而一個人每天的有效編碼量在100-150行左右。你可以算一下,大學幾年基本每天都要大量編碼練手才能達到這個量。
我舉這個例子是想說明,你想作為一個沒有程式設計基礎的人能上手寫Python程式碼,有效編碼量至少也要達到5000行左右。
按每天有效編碼100行算,也至少要連續寫程式碼50天。
這跟學英語是一個道理,單詞量不夠,聽力聽的時間不夠,就只能囫圇吞棗。
三、寫Python入門小專案練手
當你看完一些知識點,想要強化練習時,就需要寫一些只需幾行程式碼到十幾行程式碼的小功能來練手。在大學學Linux系統程式設計時,老師建議學Linux的方法就是把常用的系統命令,自己寫程式來實現。
我覺得這也可以運用在學Python上。
1).比如實現find命令:查詢指定檔名的檔案:
2).實現ls命令:顯示當前目錄有哪些檔案,顯示檔案的建立日期和檔案大小。
可以很好熟悉Python內建os模組和sys模組
還要實現ls 可以按修改時間排序,檔案大小排序等。
可以熟悉Python的list 和 dict 這個兩個資料結構。
3).實現cat和wc命令,統計指定檔案中的字數,行數等。
可以熟練Python的str字串
4).實現wget命令,把指定url的網頁抓下來。
可以熟悉一些網路知識,對風靡萬千的requests庫有所瞭解。
簡而言之,勤加練習,多動手,善用搜尋引擎。
Python入門相關文章:
我的公眾號:猿人學 Python 上會分享更多心得體會,敬請關注。
***版權申明:若沒有特殊說明,文章皆是猿人學 yuanrenxue.com 原創,沒有猿人學授權,請勿以任何形式轉載。***