Tengo un Syntax error en Python y no sé que es unu Cómo lo arreglo? Qué está mal?
Respuestas a la pregunta
Respuesta:
En python versión 2.7, recibimos un error cuando usamos 0 antes de cualquier número y ese número no es válido en el sistema de números octales. Por ej. si usamos 08 o 09, encontraremos el mismo error 'token inválido'.
El intérprete de Python divide el script completo en varias partes y esas partes se llaman tokens. Aquí, 08 se considerará como un token y, por lo tanto, está en octal e inválido en este sistema de números, por lo que se produce este tipo de error.
¿Puede intentar ejecutar una declaración simple como a = 04 y mencionar el resultado? Si funciona y falla solo mientras usa Tuple o list, entonces puede ser el problema con una versión particular python. Si no funciona, entonces hay algo mal con la configuración de su máquina. En este caso, puede actualizar su versión python si está utilizando la versión anterior.
Explicación:
En Python 3, los ceros iniciales no están permitidos en los números. P.ej:
05
0123
Etc. no están permitidos, pero deben escribirse como 5 y 123 en su lugar.
En Python 2, sin embargo, el cero inicial significa que el número es un número octal (base ocho), entonces 04 o 03 significaría 4 y 3 en octal, respectivamente, pero 08 sería inválido ya que no es un número octal válido.
En Python 3, la sintaxis para los octales cambió a esto:
0o10
0o4
(Además de permitir otras bases como binarias y hexadecimales usando los prefijos 0b o 0x).
En cuanto a su otra pregunta, un token en Python es la forma en que el intérprete Python divide su código en fragmentos, para que pueda entenderlo (vea aquí =). Aquí, cuando el tokenizador intenta dividir su código, no espera ver el cero allí y, por lo tanto, arroja un error.
Sugeriría (de manera similar a las otras respuestas) que suelte el cero inicial ((2016,4,3)) o lo represente usando cadenas (("2016","04","03")).
49
3 abr. 2016Tuomas Laakkonen
04 es un literal entero válido en Python 2.x. Se interpreta como un número base-8 (octal). 09 también sería un token no válido, ya que 9 no es un dígito octal válido.
En Python 3, la forma de los literales octales cambió. Un cero inicial solo ya no es válido; necesita especificar explícitamente la base. Por ejemplo, 0o12 es igual a 10.
En su caso, probablemente quiera soltar el 0 inicial: a = (2016, 4, 3). Los ceros iniciales se podrían agregar a la representación de cadena de su Tuple cuando sea necesario, en lugar de tratar de almacenarlos explícitamente.
Comprueba la configuración de No molestar. Ve a Configuración > No molestar y asegúrate de que esté desactivado.
Ve a Configuración > Teléfono. Debajo de Llamadas silenciadas y contactos bloqueados, toca Contactos bloqueados para ver la lista