2008-12-03 21 views
14

Algunos de ustedes pueden reconocer esto como el problema número 11. del problema de Project Euler. El que tiene la grilla.Python: Token no válido

Estoy tratando de replicar la red en una gran matriz multidimensional, pero me da un error de sintaxis y no estoy seguro de por qué

grid = [ 
[ 08, 02, 22, 97, 38, 15, 00, 40, 00, 75, 04, 05, 07, 78, 52, 12, 50, 77, 91, 08 ], 
[ 49, 49, 99, 40, 17, 81, 18, 57, 60, 87, 17, 40, 98, 43, 69, 48, 04, 56, 62, 00 ], 
[ 81, 49, 31, 73, 55, 79, 14, 29, 93, 71, 40, 67, 53, 88, 30, 03, 49, 13, 36, 65 ], 
... 

y me sale este error:

 
    File "D:\development\Python\ProjectEuler\p11.py", line 3 
    [ 08, 02, 22, 97, 38, 15, 00, 40, 00, 75, 04, 05, 07, 78, 52, 12, 50, 77, 91 , 08 ], 
    ^SyntaxError: invalid token 

¿Por qué está arrojando un error antes de la coma?

Respuesta

37

Creo que cuando comienzas un número literal con un 0, lo interpreta como un número octal y no puedes tener un '8' en un número octal.

3

Tenga en cuenta que el símbolo "^" en el error apunta exactamente a la columna errónea. Junto con el número de línea apunta exactamente en el dígito 8. Esto puede ayudar a guiarlo a lo que Jeremy sugirió.

+0

Aunque proporcionó un buen consejo, esto no responde la pregunta. Entonces creo que esto debería ser un comentario y no una respuesta. -1. – Bonifacio2

+1

@ Bonifacio2: Creo que esto no solo es una respuesta, sino también una buena, incluso si no responde completamente la pregunta del OP. Esta respuesta ayuda al OP a analizar el error de sintaxis que obtuvo. Originalmente (antes de la edición) preguntó "¿Por qué está arrojando un error después de la coma?" cuando de hecho el error está antes de la coma, y ​​mi respuesta puede ayudarlo a descubrir dónde estaba el error. "dale a un hombre un pez y lo alimentas por un día; enséñale a pescar y lo alimentarás de por vida" – yairchu

1

Simplemente elimine los ceros a la izquierda.

El primer cero marca el número octal.

Cuestiones relacionadas