如果您看一下
词法分析 (整数文字部分)页面:
integer ::= decinteger | bininteger | octinteger | hexintegerdecinteger ::= nonzerodigit (["_"] digit)* | **"0"+(["_"] "0")***...
因此,这意味着a
decinteger要么以非零数字开头(之后是所有可能的数字,并可选地带有下划线),要么是 零序列且
带有可选的下划线(其映射为零)。
该文档还指出:
注意,在一个前导零 的非零十进制数 都 不会 允许的。
因此,这意味着它们将零作为例外所有文档中都可以找到:您可以将零写为零序列。我的猜测是,它们当然必须包含
"0"(您还如何将零指定为
decinteger?),所以在那种情况下,无论数字系统如何,为什么都不允许有更多的零,并且
000现在还是保持零。他们可能不想允许
01a
decinteger来防止意外运行python-2.x代码并因此获得完全不同的结果。
最后要注意的是, 下划线只是该规范的一部分,因为python-3.6:在3.5的规范中,语法中未提及 下划线 。
在python-2.7中,文档](https://docs.python.org/2.7/reference/lexical_analysis.html#integer-
literals)指定了一个零后跟其他数字(也将其他零作为
octinteger:
integer ::= decimalinteger | octinteger | hexinteger |bininteger
decimalinteger ::= nonzerodigit digit* | “0”
octinteger ::= “0” (“o” | “O”) octdigit+ | “0” octdigit+
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)