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 的迷人魅力。更多详情:视频地址编译

相关文章
相关标签/搜索