iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 2
0
Modern Web

從LINE BOT到資料視覺化:賴田捕手系列 第 2

第 02 天:Python:Jupyter Notebook 介面操作

  • 分享至 

  • twitterImage
  •  

第 02 天:Python:Jupyter Notebook 介面操作

「Julia、Python 和 R。」年輕人說,「有什麼編譯器剛好可以處理 Julia,又可以處理 Python 和 R?」
雪比望著他。「Jupyter Notebook。」她不耐煩的說。「不只 Julia、Python 和 R,Jupyter Notebook 甚至可以支援更多種語言。」她回頭看著自己的螢幕,左手輕放在鍵盤上,敲了兩三下。

~節錄自《抓羊駝的好日子》

  工欲善其事,必先利其器。想要做一份漂亮簡報,你要會用ppt。想要知道最新的八卦,你要會上PTT。而想要輕鬆舒適的編寫一份 Python 的程式碼,你要會用 Python 的集成開發環境(Integrated Development Environment, IDE)。今天來介紹我最習慣使用的Python IDE:Jupyter Notebook。➀
  由於 Jupyter Notebook 會是許多 Python 工作者選擇的 IDE,因此 Anaconda 已經很貼心的將 Jupyter Notebook 內建在資料庫裡了。一旦我們有了 Anaconda,不需要特別安裝什麼,就可以執行 Jupyter Notebook。本來是這樣的。不過呢,我們昨天建置的新環境,是一個乾淨清爽的空間,裡面可沒有這些預先安裝的套件。別擔心,今天我們就來從安裝套件開始做起。怎麼做呢?這次我要走樸素路線,因此首先開啟 Anaconda Prompt,進入我們創建好的Python 環境(給大家一點提示:conda activate ironman_env)。接著輸入conda install jupyter notebook,系統就會開始解析環境,檢查還有哪些相輔相成的套件需要同時安裝。檢查完畢,熟悉的Proceed ([y]/n)? ,Enter 大膽按下去,系統就開始幫你安裝 Jupyter Notebook 以及相關的套件了。
  安裝結束後,在 Anaconda Prompt 輸入jupyter notebook就可以踏出我們編寫 Python 程式碼的第一步了。不過先等等。我們先選擇一個適當的地方來開啟 Jupyter Notebook。什麼意思呢?Jupyter Notebook 開啟之後,當次我們就只能在該目錄以及該目錄底下的子目錄裡工作,包括開啟檔案和儲存檔案。舉個例子來說:

(ironman_env) C:\Users\MyName>jupyter notebook

  那麼這次我們就只能在 C:\Users\MyName 這個目錄,以及底下的子目錄裡工作,如 C:\Users\MyName\Desktop 、C:\Users\MyName\Documents、C:\Users\MyName\Downloads 等等。
  幾個簡單的指令教大家怎麼在 Anaconda Prompt 裡來去自如,自由自在遊走在不同目錄間。

  • cd後面輸入想去的子目錄資料夾名稱,注意是子目錄喔,所以只能往下找。
(ironman_env) C:\Users\MyName>cd DirName

(ironman_env) C:\Users\MyName\DirName>
  • 往上找的話就輸入cd ..
(ironman_env) C:\Users\MyName>cd ..

(ironman_env) C:\Users>
  • 不確定有哪些子目錄資料夾,需要一點提示的話,可以輸入dir
(ironman_env) C:\Users\MyName>dir
Volume in drive C is Local Disk
 Volume Serial Number is B0K0-33XD

 Directory of C:\Users\MyName

09/09/2019  09:28 AM    <DIR>          .
09/09/2019  09:28 AM    <DIR>          ..
08/19/2019  07:54 AM    <DIR>          3D Objects
09/09/2019  09:29 AM    <DIR>          Anaconda3
08/19/2019  07:54 AM    <DIR>          Contacts
08/31/2019  10:28 PM    <DIR>          Desktop
08/19/2019  07:54 AM    <DIR>          Documents
09/09/2019  02:17 PM    <DIR>          Downloads
08/19/2019  07:54 AM    <DIR>          Favorites
09/09/2019  09:48 PM    <DIR>          Google Drive
08/19/2019  07:54 AM    <DIR>          Links
08/19/2019  07:54 AM    <DIR>          Music
09/06/2019  09:58 AM    <DIR>          OneDrive
09/08/2019  09:15 PM    <DIR>          Pictures
08/19/2019  07:54 AM    <DIR>          Saved Games
08/19/2019  07:54 AM    <DIR>          Searches
01/03/2017  11:53 PM    <DIR>          Tracing
08/19/2019  07:54 AM    <DIR>          Videos
              16 Dir(s)  46,354,628,608 bytes free
  • cd卻沒辦法去到 D 槽,得換個方法,直接輸入D:
(ironman_env) C:\Users\MyName>D:

(ironman_env) D:\>

  好了,各位都選好自己想要工作的資料夾了,那就在 Anaconda Prompt 裡輸入jupyter notebook囉!你就會看到一堆文字跳出來,急著告訴你他們正在努力工作沒有偷懶,然後接著,電腦預設的瀏覽器就會打開。等等,我沒有開啟他,為什麼瀏覽器會跑出來啊?因為 Jupyter Notebook 是憑依在瀏覽器上運作的 IDE。喔喔喔這個介面,喔喔喔這個設計,是不是樸素中又不失個性呀。好啦,讓我們開始來學習它吧。
  開啟 Jupyter Notebook 之後,會來到一個主目錄的畫面。這看起來就像是一個 Jupyter Notebook 版本的檔案總管。你可以從這個頁面,進入子目錄資料夾、開啟 ipynb 檔(Jupyter Notebook 文件的檔案格式)、開啟 py 檔(Python 執行檔的檔案格式)、甚至開啟 txt 檔。要開啟一個空白的 ipynb 檔,重新開始編寫程式碼,只要點擊右上角的 New,選擇要用的程式語言(這裡我們選 Python),就會在新分頁看到一個可以撰寫程式的工作區了!

https://ithelp.ithome.com.tw/upload/images/20190910/20120178W9dVWQWbg6.png
圖一、Jupyter Notebook 的主目錄,以及開新檔案的位置

  在 Jupyter Notebook 裡,是用一個一個的窗格(cell)當作執行程式的段落。窗格按照類型可以分成三種:筆記區(markdown)、編碼區(code)、原文區(raw),我常用的是筆記區跟編碼區。選擇了窗格之後,可以在如圖二的地方切換窗格的類型。

https://ithelp.ithome.com.tw/upload/images/20190910/201201782ZdJjn38Ut.png
圖二、不同類型的窗格。從上到下:編碼區、筆記區、原文區。點選紅框處可以切換窗格類型。

  編碼區,正如其名,在這個窗格內的文字就是程式碼,可以編輯也可以執行觀看結果。
  筆記區,正如其名,在這個窗格內的文字都不會被當作程式碼,因此可以在裡面寫下關於程式碼的說明、註解,或者寫一篇作文。為了方便呈現筆記的段落、分節或重點,Jupyter Notebook 提供了一些不同的文字格式。如:#標題1、**粗體字**、`等寬字`。(悄悄說一聲,如果你是鐵人賽的工作者,這個 markdown 跟鐵人賽的 markdown 是一樣的)

https://ithelp.ithome.com.tw/upload/images/20190910/20120178bpUESjqZLz.png
圖三、筆記區的不同文字格式

  當在使用 Jupyter Notebook 時,第二件需要注意的事是操作的模式。這個分成兩種:編輯模式(edit mode)跟命令模式(command mode)。從窗格外框的顏色可以輕易分辨目前的操作模式。綠色外框如圖四為編輯模式,藍色外框如圖五為命令模式。處在編輯模式下,就跟在使用文字編輯器一樣,有游標會顯示於當前的工作窗格,可以在游標處撰寫程式碼。處在命令模式下,則沒辦法輸入、修改程式碼,但可以利用一些快捷鍵操作窗格、處理檔案、執行程式碼。在不同模式之間切換,也不困難。當處在編輯模式,只要按 Esc 或用滑鼠在窗格外隨處點一下,就可以進入命令模式。而如果處在命令模式,只要按 Enter 或是用滑鼠在窗格內點一下,即可進入編輯模式。是不是很簡單呢?

https://ithelp.ithome.com.tw/upload/images/20190910/20120178xMBQDL9Is8.png
圖四、編輯模式時的窗格外觀

https://ithelp.ithome.com.tw/upload/images/20190910/201201785FrCD3VBJc.png
圖五、命令模式時的窗格外觀

  說了這麼多,還不知道要怎麼執行程式碼呢。不論在編輯模式或是命令模式,執行程式碼的方式都是一樣的。Ctrl + Enter可以執行當前窗格的程式碼並顯示結果,如圖六。Shift + Enter除了執行當前窗格的程式碼並顯示結果外,還會自動在下方產生新的窗格供您繼續編輯,如圖七

https://ithelp.ithome.com.tw/upload/images/20190910/20120178bBvo3G2eDo.png
圖六、Ctrl + Enter 執行選擇窗格內的程式碼

https://ithelp.ithome.com.tw/upload/images/20190910/20120178b0y4Y2qXsc.png
圖七、Ctrl + Enter 執行選擇窗格內的程式碼

  快捷鍵的部分。因為我還達不到手速180 apm這樣神乎其技的境界,為了讓操作Jupyter Notebook更方便快捷,我習慣會記一些快捷鍵。
  限於編輯模式(edit mode)下的快捷鍵:

  • Ctrl + [ 以及 Ctrl + ]
      改變縮排的方式。在編輯模式下,先將游標移動至欲改變縮排的段落,或者將該段落選擇起來,Ctrl + [ 可以使程式碼再往外凸一層,而 Ctrl + ] 可以使程式碼向內縮一層。什麼跟什麼?現在聽不懂沒關係,我先記在這裡,之後講到會回過來再說明一次。
      限於命令模式(command mode)下的快捷鍵:
  • my
      將所選擇的窗格切換為筆記區(按 m)或是編碼區(按 y)。
  • ab
      往上新增一個工作窗格 a、往下新增一個工作窗格 b
  • cv
      複製複製所選擇的窗格、貼上所選擇的窗格。
  • s
      儲存檔案。
  • p
      呼叫命令列。怎麼用呢?比如說,已經儲存檔案,想要關掉當前的工作視窗時,可以先按p,接著輸入 'shotdown kernel and close window' 就可以囉。一個很特別的一點是,如果沒有關閉 'kernel'(可以想像是運算核心?),而單單只是像關閉瀏覽器分頁那樣,該檔案還是會在背景運行喔。另外一個我常用的指令包括 'confirm restart kernel'。
      還有更多快捷鍵可以上h來觀看唷。喔我指的是在命令模式的情況下,按 h 觀看說明喔。
      最後,該做的工作都做完了,要關上 Jupyter Notebook 了,回到圖一主畫面的地方,右上角,比 New 在上面一點的地方,有一個 Quit,按下去就結束了。

https://ithelp.ithome.com.tw/upload/images/20190910/20120178CC7Ku5iGIs.png
圖八、把圖一再放上來,從右上角的 New 再往上看,就可以找到 Quit 啦

  最後的最後,如果大家還沒開始安裝 Anaconda,或是人在外面,裝了 Anaconda 的電腦不在手邊,但是看了這篇文章之後手癢(最好?)想趕快來操作一下,苦惱的大家該怎麼辦呢?答案是,Jupyter Notebook 官方很貼心的提供了線上的 Jupyter Notebook 服務,甚至還有比這篇文章更詳細的線上教學。有興趣的人,可以點這裡去玩玩。

參考資料:
Jupyter Notebook 官網Jupyter Notebook 教學

註:對於此系列文有興趣的讀者,歡迎參考由此系列文擴編成書的 LINE Bot by Python,以及最新的系列文《賴田捕手:追加篇》
第 31 天 初始化 LINE BOT on Heroku
第 32 天 快速回覆 QuickReply 介紹
第 33 天 妥善運用 Heroku APP 暫存空間
第 34 天 妥善運用 LINE Notify 免費推播
第 35 天 製造 Deploy to Heroku 按鈕


上一篇
第 01 天:Python:Anaconda 環境配置
下一篇
第 03 天:Python:資料型態與基本操作
系列文
從LINE BOT到資料視覺化:賴田捕手30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言