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

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

一般而言,编程语言中使用分号“;”来实现两种目的: 作为语句分隔符:使用分号来分隔语句(statement),这样就能在一行代码中书写多条语句(一行多句) 作为语句终止符:使用分号来终止语句,这样就能把多行代码识别为一条语句...单纯看“分隔符”与“终止符”,它们都是必须的,然而是否都要用分号来表示呢?这个问题没有达成一致的标准。 Python 中使用了分号作为语句分隔符,但是不用分号作为终止符, 而是用了换行作为终止符。...按我粗浅的理解,尾随分号实际会被当成分隔符,只不过它后面是“空语句”,然后是换行(即终止符)。分隔空语句是无必要的,所以尾随分号就成了多余的。 ?...Python 不用分号作为终止符,大概有如下的原因: 它把缩进和换行当成文法的有效部分,可以表达出完整的语义,不会导致编译时的歧义。...这是最主要的原因,是跟“分号党”的根本区别 不用分号与花括号,但是使用缩进和冒号,这是一脉相承的思路,总体上形成了更高的可读性、简洁性和标准化。

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

    JS分号可以省掉吗?

    只能使用单引号 函数定义的圆括号和左大括号之间一定要有空格: function(args) { .. } import语句在大括号之后一定要有空格: import { fa, fb } from moduleC 不用分号...第一反应就是JS引擎将代码生成语法树的时候,可能解析不正确。于是,我在第一行末尾加分号测试。...大宗师Douglas Crockford表示要正确使用分号 引用minhan在扯不完的 JS 分号问题文中的论述: JSON、JSLint、JSMin和ADSafe 的创造者、ECMA JavaScript...如果你不想用分号,又怕出问题,v2ex上有位童鞋给出了一个速记方案: 如果你写 JS 代码不喜欢带分号,而又搞不清什么时候必须加分号,可以这么做:在以 "("、"[" 、"/"、"+"、"-" 开头的语句前面都加上一个分号...版权声明 转载时请注明作者 Fundebug以及本文地址: https://blog.fundebug.com/2018/09/18/js-semicolon-bug/

    9K60

    JS该写分号嘛? - wuuconixs blog

    ASI 在写JS之前,我一直在写Python,习惯了没有分号的代码。 刚好,JS为我们提供了 自动分号插入 Automatic Semicolon Insertion!...这让我们在大部分情况下都不用分号,非常的优雅。 然而ASI在某些情况下将产生错误。 ASI发生错误的情况 IIFE 立即调用函数表达式 考虑以下代码。...> node 1.js /root/1.js:2 (function log() { ^ TypeError: 1 is not a function 提示显示1不是一个函数,看来引擎把代码理解成了这个样子...总结 实际上,完全不用为了ASI在一些情况下导致错误而每行都加上一个分号。...对于我目前遇到的这两种情况,可以总结一下,如果一行的开始是一个(或者[,那么再上一行你需要手动加上一个分号,至于其他的情况,完全不用考虑分号~ 还可以参考一下尤大的这篇回答 https://www.zhihu.com

    1.1K20

    node.js要不要加分号

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

    2K20

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

    因此,在编写JavaScript程序时,一般会有两种编码习惯,加分号 和 不加分号 : 加分号: 许多程序员使用分号来明确标记语句的结束,即使在并不完全需要分号的时候也是如此; 不加分号: 另一种风格是...,在任何可以省略分号的地方,都将其省略,只有在不得不用的时候才使用分号。...2.什么情况下可以不加分号 不加分号的情况下,JavaScript在解析时会自动插入分号,在满足以下两个条件的情况下,JavaScript会自动插入分号,可以不加分号: 2.1每条语句各占一行 如果多条语句中每条语句各占一行...2.2 不加分号则上下两行代码无法解析 JavaScript并不是在所有换行的地方都填补分号,只有在缺少了分号就无法正确解析代码的情况下,才会填补分号; 如下示例: let a a = 3...; 加上分号在某些情况下可以增进代码的性能,因为这样解析器就不用花多余的时间去推测在哪里添加分号了。

    1.9K11

    《大胖 • 小课》- 不用 js 实现文件无刷新上传

    这是《大胖小课》栏目的专题一《说说文件上传那些事儿》的第3节-《不用 js 实现文件无刷新上传》 专题已经更新章节: 《大胖 • 小课》- 我是这样理解文件上传原理的 《大胖 • 小课》- 写一个文件上传接口...既然要说不用 js 实现文件无刷新上传,那就要先说说最原始的文件上传,也就是在 ie 时代是怎么处理的。...这种方式上传文件,不需要 js ,而且没有兼容问题,所有浏览器都支持,就是体验很差,导致页面刷新,页面其他数据丢失。...} }`; }) CODE https://github.com/Bigerfe/fe-learn-code/tree/master/src/upfiles-demo/demo2 局部刷新(不用...js 的无刷新上传) - iframe 这里说的是在 ie 时代的上传文件局部刷新,借助 iframe 实现。

    93120

    不用React Vue,只用原生JS,如何开发单页面应用?

    本文分享一项技术方案,正是我开发上述游戏时用到的:不用React Vue,只用原生JS,如何开发单页面应用?...每次浏览器访问html时,需要重新下载整个html文档、JS和CSS依赖,才能展现出整个页面。这个效率很低。...随着异步请求AJAX等技术的兴起、HTML5规范的出现,开发者有了更优秀的页面加载方案:一个网站的所有页面,都是同一份html文档,用JS判断路由,并动态展示内容。...这就导致一个问题:如果我们不用React或Vue(例如我的游戏《Dice Crush》是用原生JS实现),没有React Router和Vue Router的能力,该怎么开发单页面应用呢?...如下图:图片图片图片我给每个页面定义了一个template.js,用于存放html字符串。

    9.4K51

    bash 脚本中分号的作用「建议收藏」

    在Linux bash shell中,语句中的分号一般用作代码块标识 1、单行语句一般要用到分号来区分代码块。...比如: weblogic@pmtest:/if [ “PS1” ]; then echo test is ok; fi test is ok 该脚本或命令行中,须要两个分号才为正确的语句,第一个分号是then...前的分号,用于标识条件块结束。...第二个分号在fi前,用于标识then块结束,假设缺少这两个分号,则程序运行错误。 这里有趣的是echo后的字符串不须要使用引號也能正确地被识别。 注意:语句结尾不要分号。 2、该代码若写作多行。...用换行符来区分代码块,则无需用到分号,比如: weblogic@pmtest:/$if [ “PS1” ] > then echo “test is ok” > fi test is ok 从这个样例可看出

    2.2K20

    不用Three.js 也可以

    前段时间时间呢,我写了一个我给鸿星尔克写了一个720°全景看鞋展厅,看大家挺赶兴趣的,当时我是用 Three.js 来写的,但是 JS 实现可能在一些非常非常老旧的机型上兼容性可能没有那么完美。...作者:羽飞 链接:https://juejin.cn/post/6997697496176820255 通过H5实现3D全景是挺平常的事情了,通过three.js可以很容易实现一个全景图。...可以这个链接来查看,three.js来实现的,戳three.js全景图DEMO链接[1]。 其实我们通过CSS3也能实现类似的效果,而且性能上更好,兼容性更好,支持低端机型。...有没有感觉写了这么多代码,感觉跟写纯JS操作DOM似的,有没有类似JQuery之类的库呢?...实现的,地址在这里:https://github.com/sole/tween.js[20]。

    3.4K30

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

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

    57811
    领券