СинтаксисError: недопустимый токен в datetime.datetime(2012,05,22,09,03,41)?
Я делаю что-то вроде этого:
>>>import datetime
>>>datetime.datetime(2012,05,22,05,03,41)
datetime.datetime(2012, 5, 22, 5, 3, 41)
>>> datetime.datetime(2012,05,22,07,03,41)
datetime.datetime(2012,05,22,07,03,41)
>>> datetime.datetime(2012,05,22,9,03,41)
datetime.datetime(2012, 5, 22, 9, 3, 41)
>>> datetime.datetime(2012,05,22,09,03,41)
SyntaxError: invalid token
Почему я получаю SyntaxError? Как это исправить?
Ответы
Ответ 1
В Python 2 число, начинающееся с 0
, интерпретируется как восьмеричное число, что часто приводит к путанице для тех, кто не знаком с C целочисленными литералами. В Python 3 вы не можете начинать число с 0
вообще.
Удалите ведущие 0s:
datetime.datetime(2012, 5, 22, 9, 3, 41)
Ошибка вызвана тем, что 09
не является действительным восьмеричным числом:
>>> 010
8
>>> 09
File "<stdin>", line 1
09
^
SyntaxError: invalid token