Tengo un Syntax error en Python y no sé que es unu Cómo lo arreglo? Qué está mal?

Adjuntos:

lobbymarney: obvio que debe estar mal ps
KiwiManzana: Pero que está mal duh?
lobbymarney: intenta describir las variables a y b
KiwiManzana: Cómo así describirlas?
lobbymarney: Desde donde estás compilando?
lobbymarney: ")"

Respuestas

Respuesta dada por: TU1BEBE0COOL
1

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.


TU1BEBE0COOL: EH ESPECIFICO CUAL ES EL PROBKEMA
KiwiManzana: Cuáles numeros?
KiwiManzana: No tengo ni variables númericas we
TU1BEBE0COOL: AS9OOO
TU1BEBE0COOL: VOY A BUSCAR PERO MEJOR RESPUESTA OK
TU1BEBE0COOL: Activa o desactiva el Modo de vuelo. Ve a Configuración y activa el Modo de vuelo, espera cinco segundos y, luego, desactívalo.
Comprueba la configuración de No molestar. Ve a Configuración > No molestar y asegúrate de que esté desactivado.
TU1BEBE0COOL: Comprueba si hay números de teléfono bloqueados. Ve a Configuración > Teléfono > Contactos bloqueados. Comprueba si el desvío de llamadas está activado. Ve a Configuración > Teléfono > Desvío de llamadas y asegúrate de que esté desactivado. Verifica si la opción Silenciar números de teléfono desconocidos está activada. Si la opción está activada, el número de teléfono de lapersona que llama debe encontrarse entre tus contactos o en Recientes.
TU1BEBE0COOL: AHI ESTA PERO UNA PREGUNTA
TU1BEBE0COOL: PUEDES RECIBIR LLAMADAS
TU1BEBE0COOL: ¿Cómo busco los números bloqueados en mi iPhone?
Ve a Configuración > Teléfono. Debajo de Llamadas silenciadas y contactos bloqueados, toca Contactos bloqueados para ver la lista
Preguntas similares