栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么在Python 3中000求值为0?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么在Python 3中000求值为0?

如果您看一下
词法分析
(整数文字部分)页面:

integer      ::=  decinteger | bininteger | octinteger | hexintegerdecinteger   ::=  nonzerodigit (["_"] digit)* | **"0"+(["_"] "0")***...

因此,这意味着a

decinteger
要么以非零数字开头(之后是所有可能的数字,并可选地带有下划线),要么是 零序列且
带有可选的下划线(其映射为零)。

该文档还指出:

注意,在一个前导零 的非零十进制数不会 允许的。

因此,这意味着它们将零作为例外所有文档中都可以找到:您可以将零写为零序列。我的猜测是,它们当然必须包含

"0"
(您还如何将零指定为
decinteger
?),所以在那种情况下,无论数字系统如何,为什么都不允许有更多的零,并且
000
现在还是保持零。他们可能不想允许
01
a
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+



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/659645.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号