Python 爲何不用分號做終止符?

通常而言,編程語言中使用分號「;」來實現兩種目的:編程

  1. 做爲語句分隔符:使用分號來分隔語句(statement),這樣就能在一行代碼中書寫多條語句(一行多句)
  2. 做爲語句終止符:使用分號來終止語句,這樣就能把多行代碼識別爲一條語句(一句多行)

單純看「分隔符」與「終止符」,它們都是必須的,然而是否都要用分號來表示呢?這個問題沒有達成一致的標準。編程語言

Python 中使用了分號做爲語句分隔符,可是不用分號做爲終止符, 而是用了換行做爲終止符。ide

若在一句完整的語句末尾加了分號,而後換行,那麼 IDE 通常會提示「Trailing semicolon in the statement」,提示着這個「尾隨分號」是多餘的。spa

按我粗淺的理解,尾隨分號實際會被當成分隔符,只不過它後面是「空語句」,而後是換行(即終止符)。分隔空語句是無必要的,因此尾隨分號就成了多餘的。設計

Python 不用分號做爲終止符,大概有以下的緣由:視頻

  1. 它把縮進和換行當成文法的有效部分,能夠表達出完整的語義,不會致使編譯時的歧義。這是最主要的緣由,是跟「分號黨」的根本區別
  2. 不用分號與花括號,可是使用縮進和冒號,這是一脈相承的思路,整體上造成了更高的可讀性、簡潔性和標準化。這體現了局部語法與總體規則的關係,1 + 1 > 2
  3. 能夠少寫字符,也避免了在某些鍵盤上要敲「shift」鍵的麻煩
  4. 分號主要是給機器看的,但 Python 更注重於人性化。早期硬件有所限制,加分號能夠提高解析/編譯的速度,但現在障礙已除,某些分號黨語言只是在延續 B/C 語言的老傳統
  5. 對於須要換行的語句,Python 中使用反斜槓(\)來鏈接,能夠理解成它把換行給轉義了,可以解決一句多行的問題

Python貓後臺回覆"0527"領取

關聯閱讀

一、A Brief History of the Semicolon in Programmingblog

二、The End of the Semicolon Eraget

寫在最後

本文屬於「Python爲何」系列文章(Python貓出品),該系列主要關注 Python 的語法、設計和發展等話題,以一個個「爲何」式的問題爲切入點,試着展示 Python 的迷人魅力。更多詳情:視頻地址編譯

相關文章
相關標籤/搜索