自動配置、有效求助、協(xié)作編程、版本控制。一站式解決 Python 新手練習中的痛點。
痛點
這個學期,我在北得克薩斯大學(University of North Texas)教 INFO 5731: Computational Methods for Information Systems 課程,主要內(nèi)容包括: Python 基礎(chǔ)、自然語言處理,以及機器學習。
授課的對象是信息科學、數(shù)據(jù)科學專業(yè)的碩士與博士研究生。跟在國內(nèi)一樣,我依然使用翻轉(zhuǎn)教學(flipped instruction)方式。
過去的幾周,我們把“Python 基礎(chǔ)”部分學完了。
每周,我都會要求學生閱讀兩本教材上的指定章節(jié),然后把所有的代碼自己重復(fù)一遍。在此基礎(chǔ)上,對每一段代碼,學生都要自己試著進行一些改動。出錯也沒有關(guān)系,嘗試解決。
因為絕大部分學生,都是 Python 初學者。因此他們都會遇到以下的實際問題。
一、不知道如何安裝和設(shè)置運行環(huán)境;
二、遇到問題會慌亂,不知如何有效尋找解決方法;
三、對于團隊作業(yè),不知該如何有效協(xié)作;
四、不懂得如何進行版本控制,代碼越改越亂。
這些問題,也構(gòu)成了學生的痛點。
如果不能有效加以解決,學生會把每周寶貴的學習時間,浪費到許多瑣碎的無用功上。更可能的情況,是他們的信心會被打擊,導致喪失學習的動力和興趣。
因此,我為他們找到了一款合適的 Python 練習工具。這里,我把這款工具也分享給你。
這款工具,就是 Google Colab 。我曾經(jīng)在《如何免費云端運行Python深度學習框架?》一文中為你介紹過它,在《如何用 Python 和循環(huán)神經(jīng)網(wǎng)絡(luò)做中文文本分類?》和《如何用 Python 和循環(huán)神經(jīng)網(wǎng)絡(luò)預(yù)測嚴重交通擁堵?》里,我也曾用它給你做過代碼的展示。
下面,我給你介紹一下,如何用 Google Colab 應(yīng)對上述的4個痛點,為你的 Python 練習提供輔助。
環(huán)境
新手最常見的問題,就是好不容易累積了學習的興趣,上手不久便遇到報錯。
而 Python 新手遇到的許多錯誤,實際上都和環(huán)境的配置有關(guān)。
例如說,Anaconda 套件下載環(huán)節(jié),你就不知道該選擇哪個版本。
好不容易安裝好了,因為路徑設(shè)置問題,連 Jupyter Notebook 都呼叫不出來。
終于能輸入代碼了。結(jié)果一輸入就提示,你要調(diào)用的模塊名稱,沒聽說過!
而這些,Google Colab 都幫你處理好了。
只需要打開一個瀏覽器(推薦 Google Chrome 或者 Firefox),輸入:
https://colab.research.google.com
就可以看到以下頁面。
選擇新建 Python 3 筆記本。
然后,就能看到完全配置好的 Python 運行環(huán)境了。
對,就是這么簡單。
你可別小瞧這個運行環(huán)境。
雖然你沒有執(zhí)行任何安裝過程,但是它基本上涵蓋了你做數(shù)據(jù)科學分析,要用到的各種工具。
這些工具包括但不限于 Numpy, Scipy, Pandas 等,甚至連深度學習的框架,例如 Tensorflow, Keras 和 Pytorch,也是一應(yīng)俱全。
Google Colab 的深度學習環(huán)境支持,可不只是軟件那么簡單。Google 慷慨的提供了 GPU, 甚至是更專業(yè)化的 TPU, 供你免費使用。
默認狀態(tài),這些云端硬件是不開啟的。你需要在菜單欄中選擇 runtime,然后選擇 Change runtime type。
就可以看到不同硬件支持的選項了。
有的書籍樣例代碼,甚至是 Python 組件,都需要 Python 2 環(huán)境才能運行,這也沒關(guān)系。點擊新建筆記本,你就能使用不同的 Python 版本了。
細心的你會發(fā)現(xiàn),在上面“修改運行時設(shè)置”頁面里,也可以隨時調(diào)整 Python 版本。
求助
作為新手,你遇到錯誤和問題,是完全正常的。
Python 具有強大的社區(qū),可以給你提供很多幫助。
但如果你嘗試過,便可能有一種錯覺——這些 Python 高手很不友好。因為你貼了問題,卻沒人理你。
其實,這很可能是你問問題的方式不對。
想想看,你籠統(tǒng)地說一個報錯信息,可能的原因或許有數(shù)十甚至上百種,誰能幫你一一排除?
這倒也罷了。可是你明明貼了一段代碼,還給出了錯誤信息的截圖啊。為什么還是沒有人伸出援手?
因為這些信息,可能依然不夠。
想想看,你本地安裝了什么樣的套件?其中的各種模塊,都分別是什么版本?你執(zhí)行當前代碼有問題,那上下文是什么?會不會是因為之前某個代碼段落,影響了你當前段落的執(zhí)行?你的操作系統(tǒng),是否完全支持你正在使用的組件功能?……
這些可能性,無窮無盡。同樣,也沒有人這樣花時間幫你枚舉。
但是有了 Google Colab ,你提問的效果卻可以大大提升。
因為,你可以用** 最簡單的方法,讓潛在的回答者復(fù)現(xiàn)**你的問題。
這就是,把你的筆記本共享出去。
如上圖,點擊筆記本右上角的 Share 按鈕。
在出現(xiàn)的對話框里,注意選擇權(quán)限。選成可以瀏覽(view),就可以了。
然后,選擇“復(fù)制鏈接”,鏈接就到了你的剪切板里面了。把它連同你的文字描述,直接貼到 Python 的論壇或者課程討論區(qū)里。
別人只需要點擊,就能查看你的全部代碼、報錯信息。而且,還能運行你的筆記副本。
注意,雖然你倆可能用的是不同的操作系統(tǒng)、不同的瀏覽器,但因為都用了 Google Colab ,你們的 Python 環(huán)境是完全一致的。
等到對方解決了問題,他還可以把完整的筆記本再用鏈接方式分享給你。你的問題于是迎刃而解。
問問題,只是尋求幫助的一個方面。
在提問之前,你還是應(yīng)該自己嘗試一下解決的。毫不愿意思考,直接當伸手黨,社區(qū)里的人很難喜歡跟你打交道。
Google Colab 為你主動尋找問題答案,提供了工具支持。每當你遇到報錯的時候,你都會看到下方有個按鈕。
點擊這個按鈕, Google Colab 就會用搜索引擎,在 Stackoverflow 這個 IT 問答站點上,幫你尋找相關(guān)報錯的已有答案。
一般來說,點擊前幾條信息,你就會有收獲。
例如這次,你就很幸運,因為答案明確說明,這是因為 Python 版本帶來的差異。
你只需要根據(jù)提示,進行代碼的輕微調(diào)整,就能正常運行了。
協(xié)作
不知你有沒有嘗試過跟人協(xié)作編寫代碼?
我的課上,是有小組作業(yè)的。要求學生2-3人一組,一起用 Python 解決問題。
有的人,是這樣協(xié)作的。
自己寫一段代碼,用郵件傳給對方。
對方改完,發(fā)回來。
自己在上面修改添加,再發(fā)回去。
……
這樣顯然效率很低。
有沒有高效的方法?
當然有。依然利用我們剛才已經(jīng)見到過的共享功能。
只是這一次,在選擇權(quán)限的時候,給對方“可修改”權(quán)限。
例如還是剛才的 print 命令沒有加括號的問題。只不過這次,對方除了能看到你的問題,還可以直接編輯。
你的協(xié)作者,新建了一個代碼塊,并且輸入了正確的信息。
在你這里看起來,就是這個樣子的。
協(xié)作者的頭像,會顯示在對應(yīng)的修改內(nèi)容旁邊。這樣一目了然。
對方還可以在代碼塊旁,選擇添加注釋。
例如輸入以下內(nèi)容。
你可以同步在自己的筆記本上,看到對方的注釋。
這樣一來,團隊協(xié)作 Python 練習溝通的效率,自然就高了許多。
注意,為了安全起見,一定只能把該權(quán)限,限定在你信任的協(xié)作者中。
如果是打算把你的成果展示出來,你可以使用 Google Colab 與 Github 的集成功能。
如上圖,選擇保存副本到 Github 。
然后,選擇你希望保存到的 Github 項目。
保存完畢后,對應(yīng)的 Github 頁面會自動打開,供你預(yù)覽。
其中可以包含全部的文字、圖片、代碼、輸出信息。注意筆記本的頂部,有一個“在 Colab 打開”的鏈接。
點擊它,你就能迅速開啟 Google Colab 環(huán)境,并且直接運行這個 Github 上的筆記副本。
版本
當你不停地嘗試和改動代碼的時候,很有可能會把問題改得更加糟糕。這時候,你恨不得有一個時光機,可以讓你回到錯誤少一點的時候。
這個時光機,Google Colab 是提供了的。
點擊菜單里面的 Revision history 功能,你就能看到當前筆記本已保存的全部歷史版本。
包括修改時間、誰改的、文件大小等各種信息,一應(yīng)俱全。
想回到哪個版本,點一下“恢復(fù)”按鈕就可以了。
另外,你也可以把 Google Colab 筆記本,直接下載成為 ipynb 文件,在本地保存副本。
一定要注意選擇需要的存儲路徑,避免不知存到哪里去了。
我一般讓學生交作業(yè)的時候,都需要同時提交 Google Colab 鏈接,以及一個 ipynb 文件。
二者的內(nèi)容,應(yīng)該是一樣的。既然如此,為什么還需要提交兩樣東西呢?
這個問題,作為思考題,留給你。請注意聯(lián)系本節(jié)標題,加以分析。
有了 ipynb 文件,你可以用本地的 Jupyter Notebook 開啟。但是如果你只是想查看內(nèi)容的話,這里給你推薦一個更好的工具,叫做nteract。它可以幫你直接開啟 ipynb 文件,用于查看。
這樣,你就沒必要每次都用 Jupyter Notebook 命令開啟后臺服務(wù),然后再到瀏覽器中點開對應(yīng)的 ipynb 了。
小結(jié)
還記得在《如何高效學 Python ?》一文中,我給你推薦過的經(jīng)典教材《笨辦法學 Python》吧?
《笨辦法學 Python》指出了一條看似笨拙,卻非常有效的學習路徑。我上課的時候,也一直在跟學生們強調(diào)—— Python 這樣的實踐類技能,只能練中學(Learn by doing)。
本文給你推薦的 Google Colab ,可以幫你解決 Python 初學者練習實踐 Python 編程時,最常遇到的幾大痛點。包括:
自動配置
有效求助
協(xié)作編程
版本控制
這樣一來,你可以把寶貴的時間,聚焦在技能的掌握和應(yīng)用;而不是久病成醫(yī),成為“環(huán)境配置專家”了。
祝 Python 編程學習愉快!
延伸閱讀
你可能也會對以下話題感興趣。點擊鏈接就可以查看。
喜歡請點贊和打賞。還可以微信關(guān)注和置頂我的公眾號“玉樹芝蘭”(nkwangshuyi)。
如果你對 Python 與數(shù)據(jù)科學感興趣,不妨閱讀我的系列教程索引貼《如何高效入門數(shù)據(jù)科學?》,里面還有更多的有趣問題及解法。
作者:王樹義
鏈接:http://www.lxweimin.com/p/5deadaf2fb89
來源:簡書
簡書著作權(quán)歸作者所有,任何形式的轉(zhuǎn)載都請聯(lián)系作者獲得授權(quán)并注明出處。