Python 为什么不用分号作终止符?

开发 后端
单纯看“分隔符”与“终止符”,它们都是必须的,然而是否都要用分号来表示呢?这个问题没有达成一致的标准。

一般而言,编程语言中使用分号“;”来实现两种目的:

  • 作为语句分隔符:使用分号来分隔语句(statement),这样就能在一行代码中书写多条语句(一行多句)
  • 作为语句终止符:使用分号来终止语句,这样就能把多行代码识别为一条语句(一句多行)

单纯看“分隔符”与“终止符”,它们都是必须的,然而是否都要用分号来表示呢?这个问题没有达成一致的标准。

Python 中使用了分号作为语句分隔符,但是不用分号作为终止符, 而是用了换行作为终止符。

若在一句完整的语句末尾加了分号,然后换行,那么 IDE 一般会提示“Trailing semicolon in the statement”,提示着这个“尾随分号”是多余的。

按我粗浅的理解,尾随分号实际会被当成分隔符,只不过它后面是“空语句”,然后是换行(即终止符)。分隔空语句是无必要的,所以尾随分号就成了多余的。

Python 不用分号作为终止符,大概有如下的原因:

  • 它把缩进和换行当成文法的有效部分,可以表达出完整的语义,不会导致编译时的歧义。这是最主要的原因,是跟“分号党”的根本区别
  • 不用分号与花括号,但是使用缩进和冒号,这是一脉相承的思路,总体上形成了更高的可读性、简洁性和标准化。这体现了局部语法与整体规则的关系,1 + 1 > 2
  • 可以少写字符,也避免了在某些键盘上要敲“shift”键的麻烦
  • 分号主要是给机器看的,但 Python 更注重于人性化。早期硬件有所限制,加分号可以提升解析/编译的速度,但如今障碍已除,某些分号党语言只是在延续 B/C 语言的老传统
  • 对于需要换行的语句,Python 中使用反斜杠(\)来连接,可以理解成它把换行给转义了,能够解决一句多行的问题

 

责任编辑:赵宁宁 来源: Python猫
相关推荐

2020-07-20 14:09:36

Python编程语言注释符

2019-03-11 08:36:11

Python代码Flask

2020-09-25 08:10:55

Rust系统编程

2023-06-06 09:03:06

InnodbMySQL

2020-06-19 14:55:11

Kubernetes容器技术

2021-05-06 06:53:39

DockerGoogleFacebook

2009-12-14 18:27:21

Linux操作系统

2015-01-08 15:18:43

DockerDockerFile创建镜像

2019-05-15 08:29:56

Web面板运维

2020-11-12 18:53:34

代码Transformer编程

2024-11-04 09:26:42

RESTJavaAPI

2009-07-07 17:18:57

Facelets介绍JSP与Facelet

2020-08-07 14:24:34

诺基亚安卓塞班系统

2022-08-15 12:31:59

PythonRuby编程语言

2022-06-17 18:49:25

pythonexcel

2024-07-04 11:34:59

2018-10-11 15:51:32

ChromeGoogle浏览器

2024-07-19 10:03:29

2024-01-31 08:15:40

Git服务器GitLab

2020-01-21 21:38:03

机器学习人工智能计算机
点赞
收藏

51CTO技术栈公众号