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

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

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

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

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

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

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

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

关联阅读

1、A Brief History of the Semicolon in Programming

2、The End of the Semicolon Era

写在最后

本文属于“Python为什么”系列文章(Python猫出品),该系列主要关注 Python 的语法、设计和发展等话题,以一个个“为什么”式的问题为切入点,试着展现 Python 的迷人魅力。更多详情:视频地址

最新文章

  1. android:TableLayout表格布局详解
  2. flume学习
  3. OSG 初始化为非全屏窗口
  4. 【转】SQL Server 2008下载 (附注册码)
  5. Android 多级树形菜单
  6. 从Jetty、Tomcat和Mina中提炼NIO构架网络服务器的经典模式(二)
  7. Java write And read Demo
  8. CI(CodeIgniter)学习第二讲
  9. IIS出现Server Application Unavailable的解决办法
  10. 一维树状数组(HD1166)
  11. Hash散列算法 Time33算法
  12. flask 部署后并发测试
  13. JavaScript字符串字节长度
  14. How to turn on syntax highlighting in osx
  15. 10款CSS3按钮 - 程序员再也不用为按钮设计而发愁了...
  16. shell 数学运算总结
  17. 20155235 2016-2017-2 《Java程序设计》第4周学习总结
  18. C++游戏系列:文件夹
  19. 【C++ 拾遗】extern 关键字
  20. eclipse tomcat 插件

热门文章

  1. 2019/02/16 STL容器 :栈
  2. XCTF练习题-WEB-webshell
  3. linux命令之df dh
  4. POJ3279(开关后续)
  5. 封锁阳光大学(染色)P1330
  6. OpenWrt R2020.3.11 去广告 抗污染 加速 PSW 无缝集成 UnPnP NAS
  7. 绝对一个月精通vue
  8. 【hdu1030】“坐标表示法”
  9. Mysql 常用函数(4)- case 函数
  10. 如何使用 Shebang Line (Python 虚拟环境)