Jupter Notebook簡介

Jupyter Notebook是一個以Web為基礎的交互式計算環境,可用於創建Jupyter Notebook文檔,該文檔可以轉換為許多的開源標準輸出格式,如HTML、演示幻燈片、PDF、Markdown、Python等。

在Jupyter Notebook裡面,程式是以區塊去執行,程式碼會分成好幾個區塊,每個區塊可以各自去執行,也可以一次執行多個區塊來看執行結果,每個執行區塊可以設定四種狀態:

狀態 説明
Code 用於編輯程式碼,如 Python
Markdown 用於編輯 Markdown 文件
Raw NBConvert 可用於轉換成另一種格式(如 HTML)的命令列工具
Heading 建議使用Markdown的標題功能取代

Jupter 網路版

  • Jupyter Notebook
    Jupter Notebook 是一個方便同時用來編輯 Markdown及HTML文件的編輯器,同時又具有Python等程式語言的編輯及執行環境,具有高互動,且容易呈現視覺化的執行結果。
  • Microsoft Azure Notebooks
    Microsoft Azure Notebooks則是Jupter Notebook加上雲端硬碟的功能,讓使用者可以隨時隨地的編輯Markdown文件。

以下簡要説明Microsoft Azure Notebooks的操作流程:

  1. 登入 Microsoft 帳號 (若無帳號則新增帳號)
  2. 點選 My Project
  3. 點選 + New Project,在Project Name中輸入專案名稱
  4. 點選 + New 中的 Notebook
    新增 Python 3.6 Notebook
  5. 點選新增的 .ipynb 檔案,開啓Markdown線上執行環境
  6. 將區塊模式由 Code 轉爲 Markdown
  7. 鍵入 # 大標題,按 Ctrl-Enter 開始執行 (注意 # 號後面的空格)
  8. 執行 Insert Cell Below 插入第二個區塊,再次執行步驟6-7

您已完成 Jupter Notebook 的初步操作,接下來可以複製課程中的語法,貼到Markdown區塊後,按 Ctrl-Enter 開始執行。

Jupter Notebook快捷鍵

Jupyter Notebook 的模式分爲命令編輯執行等模式:

  • 命令模式:區塊會以藍色框線包圍,為預設模式,可以用來操作區塊,包含移動區塊、增刪區塊等。
  • 編輯模式:區塊會以綠色框線包圍,可以在區塊中編輯 Markdown 文件或程式碼。
  • 執行模式:按 Ctrl-Enter 鍵可以顯示執行結果,並進入命令模式

使用鍵盤切換模式小技巧(→代表切換模式)

  • 編輯模式:按 Enter 鍵
  • 執行模式:按 Ctrl-Enter 鍵
  • 編輯模式 → 命令模式:按 Esc 鍵

使用滑鼠切換模式小技巧

  • 命令模式 → 編輯模式:點選右邊區塊
  • 執行模式 → 編輯模式:點選右邊區塊
    $\color{red}{(Markdown區塊要快點二次)}$
  • 執行模式:點選選單[Cell]→[Run Cells]
  • 命令模式:點選左邊空白區塊

一般快捷鍵

快捷鍵 作用
Ctrl-Enter 執行區塊
Shift-Enter 執行區塊,並移到下個區塊
Alt-Enter 執行區塊,並插入新區塊
Ctrl-S 存檔

命令模式快捷鍵Y

快捷鍵 作用
Y 區塊切換為 Code 狀態
M 區塊切換為 Markdown 狀態
R 區塊切換為 Raw NBConvert 狀態
A 在上方插入新區塊
B 在下方插入新區塊
DD 刪除選中的區塊
X 剪下選中的區塊
C 複製選中的區塊
V 貼到下方區塊
Z 恢復最後一個刪除的區塊
Shift-M 合併選中的區塊
Up ↑ 選中上方區塊
Down ↓ 選中下方區塊

編輯模式快捷鍵

快捷鍵 作用
Esc 切換到命令模式
Tab 縮排
Shift-Tab 反縮排
Ctrl-Z 復原
Ctrl-Shift-Z 重做
Ctrl-Left 跳到左邊一個字首
Ctrl-Right 跳到右邊一個字首
Ctrl-Backspace 刪除前面一個字
Ctrl-Delete 刪除後面一個字
Ctrl-Shift - 分割區塊

Markdown 簡介

Markdown是一種輕量級的標記式語言,採用易讀易寫的純文字格式來編寫文件,再轉換成有效的HTML文件。由於具有輕量、易讀及易寫的特性,並支援圖片、圖表及數學式等,因此被廣泛使用來撰寫說明文件,甚至編寫電子書。

  • HTML 是一種發佈格式,Markdown是一種編寫格式
  • Markdown不是要來取代HTML,重點在於讓文件更容易閱讀及編寫。

Markdown 線上編輯環境

  • Jupter Notebook:請詳見上一章説明。
  • StackEdit: StackEdit為Markdown文件的編輯器,可以即時看到編輯的結果,且夠執行 HTML 指令。
  • Dillinger: Dillinger為Markdown文件的編輯器,可以即時看到編輯的結果,但不能夠執行 HTML 及其他程式語言的指令

標題

Markdown的標題語法是以1到數個 # 號開頭加上空格,例如:

In [5]:
# 標題一
## 標題二
### 標題三

標題一

標題二

標題三

換行

Markdown要插入換行,只要在行尾加上兩個以上的空白即可。

分隔線

分隔線為插入3個以上的 *-,可包含空格。

***
*****
- - -
---




粗體及斜體

粗體斜體 通常會用來強調某些重點文字,語法如下:

樣式 前後加上 語法範例
粗體 兩個 * **粗體**
斜體 一個 * *斜體*
粗斜體 三個 * ***斜斜體***
~刪除~ 一個 ~ ~刪除~
In [2]:
**粗體**及*斜體*用來***強調***重點文字

粗體斜體用來強調重點文字

文字顔色

Markdown 並無文字顔色的指令,可以採用Html的style屬性來代替,例如:

In [3]:
<span style='color:red'>紅色文字</span>

紅色文字

底線及刪除線

Markdown 並無底線及刪除線的指令,可以採用Html的指令<u>及<del>來代替

In [1]:
<u>底線</u> 及 <del>刪除線</del>

底線刪除線

跳脫字元

Markdown可以利用反斜線來插入一些已被語法使用的符號,例如:

Markdown語法 輸出結果
*跳脫字元* 跳脫字元
\*跳脫字元\* *跳脫字元*

Markdown常用的跳脫字元列表如下:

跳脫字元 結果 説明
\\ \ 反斜線
\` ` 反引號
\* * 星號
\_ _ 底線
\{} {} 大括號
\[] [] 方括號
\() () 括號
\# # 井字號
\+ + 加號
\- - 減號
\. . 小數點
\! ! 驚嘆號

註解

註解可以用來説明 Markdown文件原始檔案内容,但不會呈現在執行結果,語法如下:

[//]: # (註解寫在刮號内,不會顯示出來)

超連結

Markdown支援兩種形式的超連結語法,包含行內和參考兩種形式。

行內形式連結

行內形式超連結主要語法如下:

In [10]:
[連結一](http://app.ewin.tw/)  
[連結二](http://ewin.tw/ "彈出標題")  

若連結到同一主機的檔案,可以使用相對路徑:

In [11]:
[同主機連結](/about/)

若Markdown的功能不足是,可以用HTML語法完成,但需注意編輯器是否支援HTML指令。

In [12]:
<a href="http://app.ewin.tw/" target="_blank" title="標題">連結</a>

參考式連結

In [13]:
這是參考[連結][]

[連結]: http://google.com/ "彈出標題"

這是參考連結

In [14]:
這是參考[連結][id]  

[id]: http://ewin.tw/ "彈出標題"

這是參考連結

In [15]:
參考連結,包含 [Google][1],[Yahoo][2]及[MSN][3]

[1]: http://google.com/ "Google"
[2]: http://yahoo.com/  "Yahoo"
[3]: http://msn.com/    "MSN"  

參考連結,包含 GoogleYahooMSN

注意連結本文與參考連結間務必空一行

自動連結

直接插入網址,Markdown會自動加上連結功能:
http://app.ewin.tw/

清單

單層清單

In [16]:
無序清單使用(*)(+)(-)作為標記:
* Red
* Green
+ Red
+ Blue
- Green
- Blue

有序清單使用數字接著小數點:
1. Bird
1. McHale
1. Parish

無序清單使用(*)(+)(-)作為標記:

  • Red
  • Green
  • Red
  • Blue
  • Green
  • Blue

有序清單使用數字接著小數點:

  1. Bird
  2. McHale
  3. Parish

多段落清單

清單項目若包含多個段落,每個段落必須縮排2-4個空白或一個tab,若要換行,則在末尾加上兩個空白:

In [17]:
* 段落一(末尾加2個空白)  
  段落二
* 段落三
  段落四
  • 段落一(末尾加2個空白)
    段落二
  • 段落三 段落四

多層巢狀清單

清單中若還有清單,則第二層清單要縮排

In [18]:
* 第一層清單
* 第一層清單
  * 第二層清單
  * 第二層清單
  • 第一層清單
  • 第一層清單
    • 第二層清單
    • 第二層清單
In [19]:
* 第一層清單
* 第一層清單
  1. 第二層清單
     * 第三層清單
  2. 第二層清單
  • 第一層清單
  • 第一層清單
    1. 第二層清單
      • 第三層清單
    2. 第二層清單

CheckBox清單

CheckBox 常用在確認事情是否完成,中括號中的 x 代表這個項目是被打勾的。

markdown
- [x] 已完成項目
- [ ] 未完成項目
  • [x] 已完成項目
  • [ ] 未完成項目

清單内的程式碼區塊

如果清單内要放程式碼區塊的話,該區塊就需要縮排2次:

In [20]:
* 具程式碼區塊的清單:

        function myFun(a) {
          return 10 * a;
        }
  • 具程式碼區塊的清單:

      function myFun(a) {
        return 10 * a;
      }

程式區塊也可只縮排1次再加上 ``` 區塊:

In [21]:
* 具程式碼區塊的清單:
    
  ```javascript
  function myFun(a) {
    return 10 * a;  
  }
  ```
  • 具程式碼區塊的清單:

    function myFun(a) {
      return 10 * a;  
    }
    
🏠