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

为何Python调用datetime(2018,01,01,10,08,00)会报Invalid token错误?

为什么传入08给datetime会触发SyntaxError?

先看你给出的代码:

from datetime import datetime
datetime(2018,01,01,10,08,00)

运行这段代码会抛出如下错误:

>>> datetime(2018,01,01,10,08,0)
SyntaxError: invalid token

而把08改成01-07或者直接写8就没问题,核心原因其实很简单:

  • 在Python中,以0开头的整数会被解析为八进制数(类似0x开头代表十六进制、0b开头代表二进制的规则)。
  • 八进制数的有效数字范围只有0-7,08里的8超出了这个范围,Python无法识别这个合法的八进制数,因此直接抛出语法错误。
  • 01-07都是合法的八进制数,会被自动转换成十进制的1-7;直接写8就是普通的十进制数,自然也不会有问题。

你可以自己做个小验证:

print(07)  # 输出7,合法八进制数
print(08)  # 直接触发SyntaxError: invalid token

解决这个问题的办法也很直接——去掉数字前面的前导零,直接写十进制数字即可,比如把08改成8,00改成0。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:13:03