自動配置捌木、有效求助油坝、協(xié)作編程、版本控制。一站式解決 Python 新手練習(xí)中的痛點免钻。
痛點
這個學(xué)期彼水,我在北得克薩斯大學(xué)(University of North Texas)教 INFO 5731: Computational Methods for Information Systems 課程,主要內(nèi)容包括: Python 基礎(chǔ)极舔、自然語言處理凤覆,以及機器學(xué)習(xí)。
授課的對象是信息科學(xué)拆魏、數(shù)據(jù)科學(xué)專業(yè)的碩士與博士研究生盯桦。跟在國內(nèi)一樣,我依然使用翻轉(zhuǎn)教學(xué)(flipped instruction)方式渤刃。
過去的幾周拥峦,我們把“Python 基礎(chǔ)”部分學(xué)完了。
每周卖子,我都會要求學(xué)生閱讀兩本教材上的指定章節(jié)略号,然后把所有的代碼自己重復(fù)一遍。在此基礎(chǔ)上洋闽,對每一段代碼玄柠,學(xué)生都要自己試著進(jìn)行一些改動。出錯也沒有關(guān)系诫舅,嘗試解決羽利。
因為絕大部分學(xué)生,都是 Python 初學(xué)者刊懈。因此他們都會遇到以下的實際問題这弧。
一、不知道如何安裝和設(shè)置運行環(huán)境虚汛;
二匾浪、遇到問題會慌亂,不知如何有效尋找解決方法卷哩;
三户矢、對于團隊作業(yè),不知該如何有效協(xié)作殉疼;
四梯浪、不懂得如何進(jìn)行版本控制,代碼越改越亂瓢娜。
這些問題挂洛,也構(gòu)成了學(xué)生的痛點。
如果不能有效加以解決眠砾,學(xué)生會把每周寶貴的學(xué)習(xí)時間虏劲,浪費到許多瑣碎的無用功上。更可能的情況,是他們的信心會被打擊柒巫,導(dǎo)致喪失學(xué)習(xí)的動力和興趣励堡。
因此,我為他們找到了一款合適的 Python 練習(xí)工具堡掏。這里应结,我把這款工具也分享給你。
這款工具泉唁,就是 Google Colab 鹅龄。我曾經(jīng)在《如何免費云端運行Python深度學(xué)習(xí)框架?》一文中為你介紹過它亭畜,在《如何用 Python 和循環(huán)神經(jīng)網(wǎng)絡(luò)做中文文本分類扮休?》和《如何用 Python 和循環(huán)神經(jīng)網(wǎng)絡(luò)預(yù)測嚴(yán)重交通擁堵?》里拴鸵,我也曾用它給你做過代碼的展示玷坠。
下面,我給你介紹一下劲藐,如何用 Google Colab 應(yīng)對上述的4個痛點八堡,為你的 Python 練習(xí)提供輔助。
環(huán)境
新手最常見的問題瘩燥,就是好不容易累積了學(xué)習(xí)的興趣,上手不久便遇到報錯不同。
而 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ù)科學(xué)分析,要用到的各種工具寥粹。
這些工具包括但不限于 Numpy, Scipy, Pandas 等变过,甚至連深度學(xué)習(xí)的框架,例如 Tensorflow, Keras 和 Pytorch涝涤,也是一應(yīng)俱全媚狰。
Google Colab 的深度學(xué)習(xí)環(huán)境支持,可不只是軟件那么簡單阔拳。Google 慷慨的提供了 GPU崭孤, 甚至是更專業(yè)化的 TPU, 供你免費使用糊肠。
默認(rèn)狀態(tài)辨宠,這些云端硬件是不開啟的。你需要在菜單欄中選擇 runtime货裹,然后選擇 Change runtime type嗤形。
就可以看到不同硬件支持的選項了。
有的書籍樣例代碼弧圆,甚至是 Python 組件赋兵,都需要 Python 2 環(huán)境才能運行,這也沒關(guān)系搔预。點擊新建筆記本霹期,你就能使用不同的 Python 版本了。
細(xì)心的你會發(fā)現(xiàn)拯田,在上面“修改運行時設(shè)置”頁面里历造,也可以隨時調(diào)整 Python 版本。
求助
作為新手船庇,你遇到錯誤和問題吭产,是完全正常的。
Python 具有強大的社區(qū)鸭轮,可以給你提供很多幫助垮刹。
但如果你嘗試過,便可能有一種錯覺——這些 Python 高手很不友好张弛。因為你貼了問題荒典,卻沒人理你酪劫。
其實,這很可能是你問問題的方式不對寺董。
想想看覆糟,你籠統(tǒng)地說一個報錯信息,可能的原因或許有數(shù)十甚至上百種遮咖,誰能幫你一一排除滩字?
這倒也罷了∮蹋可是你明明貼了一段代碼麦箍,還給出了錯誤信息的截圖啊。為什么還是沒有人伸出援手陶珠?
因為這些信息挟裂,可能依然不夠。
想想看揍诽,你本地安裝了什么樣的套件诀蓉?其中的各種模塊,都分別是什么版本暑脆?你執(zhí)行當(dāng)前代碼有問題渠啤,那上下文是什么?會不會是因為之前某個代碼段落添吗,影響了你當(dāng)前段落的執(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)該自己嘗試一下解決的叛氨。毫不愿意思考呼渣,直接當(dāng)伸手黨,社區(qū)里的人很難喜歡跟你打交道寞埠。
Google Colab 為你主動尋找問題答案屁置,提供了工具支持。每當(dāng)你遇到報錯的時候仁连,你都會看到下方有個按鈕蓝角。
點擊這個按鈕, Google Colab 就會用搜索引擎饭冬,在 Stackoverflow 這個 IT 問答站點上使鹅,幫你尋找相關(guān)報錯的已有答案。
一般來說昌抠,點擊前幾條信息患朱,你就會有收獲。
例如這次炊苫,你就很幸運裁厅,因為答案明確說明冰沙,這是因為 Python 版本帶來的差異。
你只需要根據(jù)提示执虹,進(jìn)行代碼的輕微調(diào)整倦淀,就能正常運行了。
協(xié)作
不知你有沒有嘗試過跟人協(xié)作編寫代碼声畏?
我的課上撞叽,是有小組作業(yè)的。要求學(xué)生2-3人一組插龄,一起用 Python 解決問題愿棋。
有的人,是這樣協(xié)作的均牢。
自己寫一段代碼糠雨,用郵件傳給對方。
對方改完徘跪,發(fā)回來甘邀。
自己在上面修改添加,再發(fā)回去垮庐。
……
這樣顯然效率很低松邪。
有沒有高效的方法?
當(dāng)然有哨查。依然利用我們剛才已經(jīng)見到過的共享功能逗抑。
只是這一次,在選擇權(quán)限的時候寒亥,給對方“可修改”權(quán)限邮府。
例如還是剛才的 print 命令沒有加括號的問題。只不過這次溉奕,對方除了能看到你的問題褂傀,還可以直接編輯。
你的協(xié)作者加勤,新建了一個代碼塊仙辟,并且輸入了正確的信息。
在你這里看起來胸竞,就是這個樣子的欺嗤。
協(xié)作者的頭像参萄,會顯示在對應(yīng)的修改內(nèi)容旁邊卫枝。這樣一目了然。
對方還可以在代碼塊旁讹挎,選擇添加注釋校赤。
例如輸入以下內(nèi)容吆玖。
你可以同步在自己的筆記本上,看到對方的注釋马篮。
這樣一來沾乘,團隊協(xié)作 Python 練習(xí)溝通的效率,自然就高了許多浑测。
注意翅阵,為了安全起見,一定只能把該權(quán)限迁央,限定在你信任的協(xié)作者中掷匠。
如果是打算把你的成果展示出來,你可以使用 Google Colab 與 Github 的集成功能岖圈。
如上圖讹语,選擇保存副本到 Github 。
然后蜂科,選擇你希望保存到的 Github 項目顽决。
保存完畢后,對應(yīng)的 Github 頁面會自動打開,供你預(yù)覽摘昌。
其中可以包含全部的文字依疼、圖片、代碼鸠儿、輸出信息。注意筆記本的頂部厕氨,有一個“在 Colab 打開”的鏈接进每。
點擊它,你就能迅速開啟 Google Colab 環(huán)境命斧,并且直接運行這個 Github 上的筆記副本田晚。
版本
當(dāng)你不停地嘗試和改動代碼的時候,很有可能會把問題改得更加糟糕国葬。這時候贤徒,你恨不得有一個時光機,可以讓你回到錯誤少一點的時候汇四。
這個時光機接奈,Google Colab 是提供了的。
點擊菜單里面的 Revision history 功能通孽,你就能看到當(dāng)前筆記本已保存的全部歷史版本序宦。
包括修改時間、誰改的背苦、文件大小等各種信息互捌,一應(yīng)俱全潘明。
想回到哪個版本,點一下“恢復(fù)”按鈕就可以了秕噪。
另外钳降,你也可以把 Google Colab 筆記本,直接下載成為 ipynb 文件腌巾,在本地保存副本遂填。
一定要注意選擇需要的存儲路徑,避免不知存到哪里去了澈蝙。
我一般讓學(xué)生交作業(yè)的時候城菊,都需要同時提交 Google Colab 鏈接,以及一個 ipynb 文件碉克。
二者的內(nèi)容凌唬,應(yīng)該是一樣的。既然如此漏麦,為什么還需要提交兩樣?xùn)|西呢客税?
這個問題,作為思考題撕贞,留給你更耻。請注意聯(lián)系本節(jié)標(biāo)題,加以分析捏膨。
有了 ipynb 文件秧均,你可以用本地的 Jupyter Notebook 開啟。但是如果你只是想查看內(nèi)容的話号涯,這里給你推薦一個更好的工具目胡,叫做 nteract 。它可以幫你直接開啟 ipynb 文件链快,用于查看誉己。
這樣,你就沒必要每次都用 Jupyter Notebook 命令開啟后臺服務(wù)域蜗,然后再到瀏覽器中點開對應(yīng)的 ipynb 了巨双。
小結(jié)
還記得在《如何高效學(xué) Python ?》一文中霉祸,我給你推薦過的經(jīng)典教材《笨辦法學(xué) Python》吧筑累?
《笨辦法學(xué) Python》指出了一條看似笨拙,卻非常有效的學(xué)習(xí)路徑丝蹭。我上課的時候慢宗,也一直在跟學(xué)生們強調(diào)—— Python 這樣的實踐類技能,只能練中學(xué)(Learn by doing)。
本文給你推薦的 Google Colab 婆廊,可以幫你解決 Python 初學(xué)者練習(xí)實踐 Python 編程時,最常遇到的幾大痛點巫橄。包括:
- 自動配置
- 有效求助
- 協(xié)作編程
- 版本控制
這樣一來淘邻,你可以把寶貴的時間,聚焦在技能的掌握和應(yīng)用湘换;而不是久病成醫(yī)宾舅,成為“環(huán)境配置專家”了。
祝 Python 編程學(xué)習(xí)愉快彩倚!
延伸閱讀
你可能也會對以下話題感興趣筹我。點擊鏈接就可以查看。
喜歡請點贊和打賞哥谷。還可以微信關(guān)注和置頂我的公眾號“玉樹芝蘭”(nkwangshuyi)岸夯。
如果你對 Python 與數(shù)據(jù)科學(xué)感興趣,不妨閱讀我的系列教程索引貼《如何高效入門數(shù)據(jù)科學(xué)们妥?》猜扮,里面還有更多的有趣問題及解法。