为什么在Python中双分号是语法错误?

2024-05-14 13:29:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道在Python中分号是不必要的,但是它们可以用来将多个语句塞进一行,例如

>>> x = 42; y = 54

我一直以为是分号。所以我有点惊讶地发现(h/tNed Batchelder on Twitter)双分号是语法错误:

^{pr2}$

我假设最后一个程序相当于x = 42\n\n。我本以为分号之间的语句被当作一个空行,一个no-op。显然不是。在

为什么这是一个错误?


Tags: no程序on错误twitter语句语法错误op
2条回答

从Python语法中,我们可以看到;没有定义为\n。解析器期望在;后面有另一个语句,除非它后面有一个换行符:

                     Semicolon w/ statement    Maybe a semicolon  Newline
                          \/     \/               \/                \/
simple_stmt: small_stmt (';' small_stmt)*        [';']            NEWLINE

这就是x=42;;不起作用的原因;因为两个分号之间没有语句,因为“nothing”不是语句。如果它们之间有任何完整的语句,比如pass,甚至只是一个0,代码就可以工作了。在

^{pr2}$

空语句仍然需要pass,即使有分号。在

>>> x = 42;pass;
>>> x
42

相关问题 更多 >

    热门问题