You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python3.8中为什么00/000000合法但03触发前导零语法错误

问题现象

在Python 3.8环境测试时发现,输入00或000000可正常返回整数0,但是输入03会触发语法错误,报错详情如下:

>>> 000
0

>>> 03
  File "<stdin>", line 1
    03
     ^
SyntaxError: leading zeros in decimal integer literals are not permitted; use an 0o prefix for octal integers

核心原因

这个差异是Python 3的十进制整数字面量语法规则明确规定的:

  • 规则要求十进制整数禁止带前导零,避免和Python 2中前导零代表八进制数的旧语法产生歧义
  • 仅全零的多零写法被作为特殊例外兼容,00、000000这类写法都会被直接解析为整数0,不会触发语法错误
  • 如果需要表示八进制数,必须添加0o前缀,比如0o3对应十进制的3,是合法写法

内容的提问来源于stack exchange,提问作者Philippe Remy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 06:36:05