2013-05-22 15 views
16

faccio qualcosa di simile:SyntaxError: token non valido in 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 

Perché ricevo SyntaxError? Come sistemarlo?

+2

09 non è valido ottale cifre ... – Xaerxess

+4

@Xaerxess: 09 non è valido ottale ** numero ** - scuse, mi sento pignolo oggi :-) – paxdiablo

+0

@paxdiablo Sì, quello che intendevo era ** 9 ** è un decimale valido ** cifra ** :) – Xaerxess

risposta

27

In Python 2, un numero che inizia con 0 viene interpretato come ottale numero, causando spesso confusione per chi non ha familiarità con C interi notazioni letterali. In Python 3, non è possibile iniziare un numero con 0.

Rimuovere gli 0 principali:

datetime.datetime(2012, 5, 22, 9, 3, 41) 

L'errore è causato da 09 non essere un numero ottale valida:

>>> 010 
8 
>>> 09 
    File "<stdin>", line 1 
    09 
    ^
SyntaxError: invalid token 
Problemi correlati