为何00与0在Python中属于合法整数?依据官方语法解析
Python整数字面量
0和00合法性解析 看官方定义里的十进制整数(decinteger)规则:
decinteger ::= nonzerodigit ([""] digit)* | "0"+ ([""] "0")*
这个规则是二选一的逻辑:
- 第一个分支对应普通非零开头的十进制整数,比如
123、1_234 - 第二个分支专门处理全零场景:允许一个或多个连续的
0,中间还可以穿插下划线(比如0、00、0_0都符合该规则)
所以:
0满足第二个分支里的"0"+(单个0符合“至少一个0”的要求)00同样符合第二个分支,两个连续的0完全匹配"0"+的定义
实际验证结果也能佐证:
>>> isinstance(0, int) True >>> isinstance(00, int) True
内容的提问来源于stack exchange,提问作者david
相关产品推荐
相关产品推荐

