首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

一般而言,编程语言中使用分号“;”来实现两种目的: 作为语句分隔符:使用分号来分隔语句(statement),这样就能在一行代码中书写多条语句(一行多句) 作为语句终止符:使用分号来终止语句,这样就能把多行代码识别为一条语句...单纯看“分隔符”与“终止符”,它们都是必须的,然而是否都要用分号来表示呢?这个问题没有达成一致的标准。 Python 中使用了分号作为语句分隔符,但是不用分号作为终止符, 而是用了换行作为终止符。...Python 不用分号作为终止符,大概有如下的原因: 它把缩进和换行当成文法的有效部分,可以表达出完整的语义,不会导致编译时的歧义。...这体现了局部语法与整体规则的关系,1 + 1 > 2 可以少写字符,也避免了在某些键盘上要敲“shift”键的麻烦 分号主要是给机器看的,但 Python 更注重于人性化。...早期硬件有所限制,加分号可以提升解析/编译的速度,但如今障碍已除,某些分号党语言只是在延续 B/C 语言的老传统 对于需要换行的语句,Python 中使用反斜杠(\)来连接,可以理解成它把换行给转义了,

1.2K30
您找到你想要的搜索结果了吗?
是的
没有找到

JS的分号可以省掉吗?

摘要: JavaScript语言从设计之初就是考虑带分号的,使用不带分号的编码规则就要小心点啦。...程序运行起来后,没有执行结果,而且没有报错。通过console.log打印数据发现,整个程序执行到map前面就再也不往下走了,很奇怪。因为没有报错信息,无法推测具体原因。...如下所示: console.log("hello, fundebug") [1, 2, 3].map(i=>console.log(i)) 然后执行看看结果如何: [error.png] 在项目中没有报错...在网络上搜索JavaScript关于分号的BUG,发现有非常多关于要不要使用分号的讨论。...如果你不想用分号,又怕出问题,v2ex上有位童鞋给出了一个速记方案: 如果你写 JS 代码不喜欢带分号,而又搞不清什么时候必须加分号,可以这么做:在以 "("、"[" 、"/"、"+"、"-" 开头的语句前面都加上一个分号

9K60

JS该写分号嘛? - wuuconixs blog

ASI 在写JS之前,我一直在写Python,习惯了没有分号的代码。 刚好,JS为我们提供了 自动分号插入 Automatic Semicolon Insertion!...这让我们在大部分情况下都不用写分号,非常的优雅。 然而ASI在某些情况下将产生错误。 ASI发生错误的情况 IIFE 立即调用函数表达式 考虑以下代码。...至少是报错了,我们可以知道某个地方出了问题,如果没有报错呢?...这种没有报错的隐式错误,真在Leetcode刷题的时候 够你Debug半天了2333。 总结 实际上,完全不用为了ASI在一些情况下导致错误而每行都加上一个分号。...对于我目前遇到的这两种情况,可以总结一下,如果一行的开始是一个(或者[,那么再上一行你需要手动加上一个分号,至于其他的情况,完全不用考虑分号~ 还可以参考一下尤大的这篇回答 https://www.zhihu.com

1.1K20

JavaScript里的分号,你加还是不加?

在我们初学编程,接触C语言的时候,就常常因为代码结尾没有分隔符或者分隔符写错,而引发程序bug。 对于很多的编程语言,在一条语句结尾加上分号是必须的。然而,对于JavaScript,则并不如此。...因此,在编写JavaScript程序时,一般会有两种编码习惯,加分号 和 不加分号 : 加分号: 许多程序员使用分号来明确标记语句的结束,即使在并不完全需要分号的时候也是如此; 不加分号: 另一种风格是...,在任何可以省略分号的地方,都将其省略,只有在不得不用的时候才使用分号。...2.什么情况下可以不加分号 不加分号的情况下,JavaScript在解析时会自动插入分号,在满足以下两个条件的情况下,JavaScript会自动插入分号,可以不加分号: 2.1每条语句各占一行 如果多条语句中每条语句各占一行...console.log(a) //3 显然,代码被解析为: let a; a=3; console.log(a); 在2行 3行都没有插入分号

1.5K11

node.js要不要加分号

一开始,关于在node.js句末不加分号,我是拒绝的。因为有时不加分号会报错。 我觉得node.js在语法层面挺拧巴的,要么就像PHP那样严格要求加分号,要么就像python一律不加分号。...加不加分号,这是一个问题 直到有一天我了解了加不加分号的场景,才终于释然 一言以蔽之:当代码是以 ( [ ` 这些符号开头时,就需要在代码之前加上分号,其他场景都不需要加分号 let msg =...'加不加分号呢' (function () { console.log('我是一个匿名函数') }()) 结果报错: 我是一个匿名函数 /Users/airmb/code/node/01/04....js:3 (function () { ^ TypeError: "加不加分号呢" is not a function at Object....693:10) at startup (bootstrap_node.js:191:16) at bootstrap_node.js:612:3 正确的写法: let msg = '加不加分号

1.9K20

为什么Python没有main函数?

作者 | 豌豆花下猫 来源 | Python猫(ID:python_cat) 众所周知,Python没有所谓的main函数,但是网上经常有文章提到“ Python的main函数”和“建议编写main函数...在本文中,我们来讨论一下为什么Python没有main函数。 在开始讨论之前,我们先来回答以下两个问题: 所谓的“main函数”究竟是什么意思? 为什么有些编程语言必须编写main函数?...但是,当我们把目光转向Python时,就会发现情况大不相同。 Python是一种解释语言,即脚本语言。运行过程是从上到下,逐行进行的,这意味着它的起点是已知的。...总而言之,Python作为脚本语言不同于编译语言。无论是单个模块(即.py文件),还是由多个模块组成的软件包,Python都可以选择一种灵活的执行方法,这完全不像其他语言那样必须定义入口。...除了函数名是“main”之外,这段代码与我们前面介绍的main函数没有半点关系,这个函数既不是必须的,也不能确定程序的执行顺序。即便没有上面这样的main函数,也不会有任何的语法问题。

1.8K20

女神节表白:因一个分号被拒

分号不背这个锅 3月8号是中国妇女节,3月7号俗称女神节,而每年的女神节的横幅在校内都被玩出一朵花了。...大家也不用较真哈~ 给你瞅瞅报错的情况: [mark] 我稍作了修改,定义了变量 forever 和 i,还将 for 后面的分号改成了花括号。...还有哪些语言需要分号 上线提到的是 C 语言需要用分号来断句,哪还有那些语言需要分号呢? 我把我常见的语言列在这里了,大家可留言补充或纠正,以后写代码千万得注意了。...需要分号的: PHP、Java、C++、C#、SQL、Pascal。...不需要分号的: Python 分号可选: JavaScript Scala 其他有创意的横幅 0 error 也不抵你的微笑 [0 error 也不抵你的微笑] 这一定是编译报错见得太多了。。

56111

女神节表白:因一个分号被拒!

分号不背这个锅 3月8号是中国妇女节,3月7号俗称女神节,而每年的女神节的横幅在校内都被玩出一朵花了。...大家也不用较真哈~ 给你瞅瞅报错的情况: 报错情况 我稍作了修改,定义了变量 forever 和 i,还将 for 后面的分号改成了花括号。...还有哪些语言需要分号 上面提到的是 C 语言需要用分号来断句,那还有哪些语言需要使用分号呢? 我把常见的语言列在这里了,大家可留言补充或纠正,以后写代码千万得注意了。...需要分号的: PHP、Java、C++、C#、SQL、Pascal。...不需要分号的: Python 分号可选: JavaScript Scala 其他有创意的横幅 0 error 也不抵你的微笑 这一定是编译报错见得太多了。。

49820
领券