Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么在Python 3中000的值为0?_Python_Int_Literals_Python 3.3_Python 2.x_Python 3.6_Python 2.7 - Fatal编程技术网

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

为什么在Python 3中000的值为0?,python,int,literals,python-3.3,python-2.x,python-3.6,python-2.7,Python,Int,Literals,Python 3.3,Python 2.x,Python 3.6,Python 2.7,由于八进制前缀现在在Python 3中是0o,因此再写0777是不合法的。好的 那么,为什么写入正确计算为0的00是合法的,而其他数字会触发语法错误呢 >>> 01 ... File "<interactive input>", line 1 01 ^ SyntaxError: invalid token >>> >>> 00 0 >01 ... 文件“”,第1行 01 ^ SyntaxError:无

由于八进制前缀现在在Python 3中是
0o
,因此再写
0777
是不合法的。好的

那么,为什么写入正确计算为
0
00
是合法的,而其他数字会触发语法错误呢

>>> 01
  ...
  File "<interactive input>", line 1
    01
     ^
SyntaxError: invalid token
>>> 
>>> 00
0
>01
...
文件“”,第1行
01
^
SyntaxError:无效令牌
>>> 
>>> 00
0

如果查看(整型文字部分)页面:


看起来像一个决策者(didnt-dv)@WillemVanOnsem是的,看起来很像。但是它有什么用呢?根据语法,我想说只允许一个零序列(如果它不是以非零数字或
0o
0b
等开头),这是答案的一部分,谢谢。但是有人知道这有什么用吗?而且
00_00
仍然是无效语法。顺便说一句,
00_00
在我的Python3中运行良好。6@Jean-弗朗索瓦·法布:我的猜测是,一系列的零总是零,不管一使用的基数是多少。@ukaszRogalski好的,所以下划线是新的,因为在3.4中它不起作用。@AngelSalazar:这是巴科斯·诺尔形式的一个变体:
integer      ::=  decinteger | bininteger | octinteger | hexinteger
decinteger   ::=  nonzerodigit (["_"] digit)* | "0"+(["_"] "0")*
...
integer        ::=  decimalinteger | octinteger | hexinteger | bininteger
decimalinteger ::=  nonzerodigit digit* | "0"
octinteger     ::=  "0" ("o" | "O") octdigit+ | "0" octdigit+