专栏首页小数志Python 为什么不用分号作终止符?

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

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

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

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

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

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

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

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

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

本文分享自微信公众号 - 小数志(Datazhi)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python数据分析师该如何选择IDE

    python是绝大多数数据分析师的必备工具之一,而一个好的IDE对于提高代码效率来说则至关重要。今天,仅就个人使用IDE的选择和习惯做以分享。

    luanhz
  • 从第6次全国人口普查数据说起

    全国人口分布呈现明显的东南多、西北少的特点,这跟地势走势和经济发展程度有绝对关系。人口大省排在靠前序列的依次是广东、山东、河南、四川和江苏五省,其中广东是唯一人...

    luanhz
  • 淘宝网米酒销售状况分析报告

    “ 前期,已经针对京东平台的米酒销售状况进行了初步分析,从那一刻起其实就想对淘宝平台进行类似分析,以作对比。但无奈一直受限于淘宝强大的反爬措施,尝试过post登...

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

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

    Python猫
  • RadarSLAM: 全天候大场景激光slam

    RadarSLAM: Radar based Large-Scale SLAM in ALL Weathers

    用户1150922
  • 在微服务领域Spring Boot自动伸缩如何实现

    自动伸缩是每个人都想要的,尤其是在微服务领域。让我们看看如何在基于Spring Boot的应用程序中实现。

    慕容千语
  • Mysql 分区介绍(八) —— 子分区

    分区也被称为复合分区在分区表中每个分区的进一步划分。子分区也必须是hash分区/key分区

    aox.lei
  • Google工程师:如何看待程序员普遍缺乏数据结构和算法知识?

    有人说,算法,先于计算机存在于世,比编程语言本身更为重要,语言只是工具,而算法才是灵魂。而程序就等于算法加数据结构。足以可见,想要在编程之路上走的更长远,数据结...

    我的小碗汤
  • 面试过几百个程序员,我发现很多人都缺乏数据结构和算法知识

    有人说,算法,先于计算机存在于世,比编程语言本身更为重要,语言只是工具,而算法才是灵魂。而程序就等于算法加数据结构。足以可见,想要在编程之路上走的更长远,数据结...

    猿天地
  • Linux下快速构建Android编译环境

    通常,开发苹果系列的软件均需要使用一些专有开发工具,比如xcode,而此工具必须运行在Mac OS X设备上(当然你也可以尝试各种黑苹果的方式),所以不论是对于...

    BGBiao

扫码关注云+社区

领取腾讯云代金券