標點符號(選修)
預計時間: 5 分鐘
本單元為選修,提供標點符號的快速複習。
逗號
程式語言對標點符號有明確的規定。相較之下,英語中關於逗號的規則則較為模糊。作為一個指引,只要讀者在句中自然停頓的地方,就插入逗號。對於有音樂背景的人來說,如果句號是全音符(semibreve)的休止符,那麼逗號大概是二分音符(minim)或四分音符(crotchet)的休止符。換句話說,逗號的停頓時間比句號短。例如,當你大聲朗讀以下句子時,可能會在 just 這個字前短暫停頓:
C 是一種中階語言,抽象層次比組合語言高出幾個階段。
有些情況下必須使用逗號。例如,使用逗號來分隔嵌入式清單中的項目,如下所示:
我們公司使用 C++、Python、Java 和 JavaScript。
你可能會好奇列表中最後一個逗號,也就是插入在第 N-1 項和第 N 項之間的逗號。這個逗號——稱為序列逗號或牛津逗號——具有爭議性。我們建議加上這個最後的逗號,因為技術寫作需要選擇最不模糊的解決方案。話雖如此,我們其實更喜歡透過將內嵌列表轉換成項目符號列表來避開這個爭議。
在表達條件的句子中,請在條件和結果之間加上逗號。例如,以下兩個句子都在正確的位置加上了逗號:
如果程式執行緩慢,請嘗試使用 --perf
參數。
如果程式執行緩慢,那麼請嘗試使用 --perf
參數。
你也可以在一對逗號之間插入一個簡短的定義或題外話,如以下範例:
Python,一種易於使用的語言,近年來獲得了顯著的發展動力。
最後,避免使用逗號將兩個獨立的想法連接在一起。例如,以下句子中的逗號犯了一種稱為逗號拼接的標點錯誤:
不建議使用
Samantha 是一位出色的程式設計師,她撰寫了大量的測試。
使用句號而非逗號來分隔兩個獨立的想法。例如:
推薦
Samantha 是一位出色的程式設計師。她撰寫了大量的測試。
練習
請在以下段落中適當添加逗號:
Protocol Buffers 有時被稱為 protobufs,是我們團隊主要的結構化資料格式。使用 Protocol Buffers 來表示、儲存和傳輸結構化資料。與 XML 不同,Protocol Buffers 是編譯型的。因此,客戶端能有效率地傳輸 Protocol Buffers,這促使其迅速被採用。
答案:
Protocol Buffers,有時被稱為 protobufs,是我們團隊主要的結構化資料格式。使用 Protocol Buffers 來表示、儲存和傳輸結構化資料。與 XML 不同,Protocol Buffers 是編譯型的。因此,客戶端能有效率地傳輸 Protocol Buffers,這促使其迅速被採用。
分號
句號用來分隔不同的想法;分號則用來連接高度相關的想法。例如,請注意下列句子中分號如何連接第一個和第二個想法:
建議
更新設定檔後重新執行 Frambus;更新現有原始碼後則不要重新執行 Frambus。
在使用分號之前,請先問自己,如果將分號兩邊的想法對調,句子是否仍然通順。例如,將前面的例子反過來仍然是一個有效的句子:
不要在更新現有原始碼後重新執行 Frambus;應在更新設定檔後重新執行 Frambus。
分號前後的想法必須各自是語法完整的句子。例如,以下的分號用法是不正確的,因為分號後的部分是子句,而非完整句子:
不建議使用
在更新您的配置檔後重新執行 Frambus;而非在更新現有原始碼後執行。
建議
在更新您的配置檔後重新執行 Frambus,而非在更新現有原始碼後執行。
您幾乎應該總是使用逗號,而非分號,來分隔內嵌清單中的項目。例如,以下使用分號的方式是不正確的:
不建議
風格指南比月亮還大;比氧氣還重要;而且完全難以理解。
如本課程前面提到的,技術寫作通常偏好使用項目符號清單而非內嵌清單。然而,如果你真的偏好使用內嵌清單,請使用逗號而非分號來分隔項目,如以下範例所示:
建議使用
風格指南比月亮還大,比氧氣還重要,卻完全難以理解。
許多句子在分號後緊接著放置轉折詞或片語。在這種情況下,轉折詞後面應加逗號。請注意以下兩個例子中轉折詞後的逗號:
Frambus 沒有提供官方的字串操作開源套件;然而,其他開源專案提供了字串操作套件的子集。
即使看似微不足道的程式碼變更也可能導致錯誤;因此,請撰寫充足的單元測試。
練習
下列哪一個句號或逗號可以用分號取代?
- Python 是一種流行的程式語言。C 語言的開發時間遠早於 Python。
- X 值較低時的模型學習出現在上方圖示。X 值較高時的模型學習出現在下方圖示。
- 我很感謝我的大螢幕、強大的中央處理器,以及超快的頻寬。
答案:
你不能將第1句的句號改成分號,因為這兩句話的關聯性僅是模糊的。你可以將第2句的句號改成分號,因為這兩句話的關聯性非常密切。你不能將第3句的逗號改成分號。使用逗號來分隔嵌入清單中的項目。
破折號
破折號是引人注目的標點符號,具有豐富的標點可能性。破折號表示比逗號更長的停頓——更大的中斷。對於音樂上熟悉的人來說,可以將逗號視為四分音符(四分休止符)的停頓,而破折號則是二分音符(二分休止符)的停頓。例如:
C++ 是一門豐富的語言——需要大量經驗才能完全理解。
作者有時會使用一對長破折號來隔開插入語,如以下範例所示:
Protocol Buffers——常被暱稱為 protobufs——以高效且可擴充的格式編碼結構化資料。
在前面的範例中,我們能否用逗號代替長破折號?當然可以。我們為什麼選擇長破折號而不是逗號?感覺。藝術。經驗。
En dash 和連字號
請參考下表所示的水平標點符號:
名稱 | 符號 | 相對寬度 |
---|---|---|
長破折號 | — | 最寬(通常為字母 m 的寬度) |
短破折號 | – | 中等(通常為字母 n 的寬度) |
連字號 | - | 最窄 |
有些風格指南建議在某些用途中使用 en dash。然而,Google 風格指南對 en dash 提出了以下直白的建議:
請勿使用。
連字號很棘手。在技術寫作中,連字號用於連接某些複合詞,例如:
- 自注意力
- N-gram
令人困惑的是,三字複合詞通常在第一和第二個字之間會有連字號,但在第二和第三個字之間則沒有。例如:
- Decision-making system
- Floating-point feature
對於連字號有疑慮時,請查閱字典、詞彙表或寫作風格指南。
注意: 如果您查閱多本字典、詞彙表或風格指南關於連字號的用法,可能會遇到不一致的情況。
冒號
在技術寫作中,使用冒號提醒讀者接下來會有列表或表格。換句話說,介紹列表或表格的句子應以冒號結尾。以下範例中,請注意介紹列表的句子末尾的冒號:
請考慮以下重要的程式語言:
- Python
- Java
- C++
技術寫作偏好使用項目符號清單或編號清單,而非內嵌清單。話雖如此,你仍可以使用冒號來引入內嵌清單,如以下範例所示:
請考慮以下重要的程式語言:Python、Java 和 C++。
並非所有內嵌清單都需要冒號。例如:
我最喜歡的三種程式語言是 Python、Java,以及除了 C++ 以外的任何語言。