Guía de diagnóstico

SyntaxError: cuando Python no puede interpretar la estructura del código

Python detecta una combinación de símbolos que no encaja con la gramática del lenguaje. El lugar marcado es donde dejó de poder continuar, no siempre donde empezó el problema.

Revisado 2026-09-30Ejemplos y diagnóstico

Lee el caret como una pista, no como un veredicto

En muchos mensajes de SyntaxError, Python muestra una línea y un símbolo ^. Ese caret señala el punto donde el parser ya no pudo construir una instrucción válida. Si falta una comilla o un paréntesis antes, la marca puede aparecer más tarde.

syntax_error.py
if edad >= 18
    print("adulto")
Primera comprobaciónSi la línea abre un bloque con if, for, while, def, class, try o similares, revisa si falta :.

Tres causas que merecen revisarse primero

Delimitador abierto

Una comilla, paréntesis, corchete o llave sin cerrar puede hacer que el error se señale una o varias líneas después.

Estructura incompleta

Dos puntos ausentes, operadores mal colocados o palabras clave en una posición imposible impiden formar la instrucción.

Sintaxis de otra versión

Una característica reciente puede fallar si ejecutas el código con una versión de Python anterior a la que la introdujo.

La línea anterior también puede ser culpable

parece_fallar_aqui.py
mensaje = ("Hola"
print(mensaje)

El print puede quedar marcado aunque el origen sea el paréntesis abierto en la asignación. Cuando una línea parece correcta, retrocede hasta la última estructura que abrió algo.

Practica encontrando el punto de ruptura

Antes de ejecutar, localiza el defecto en estos tres casos: un if sin dos puntos, una cadena sin comilla final y una llamada con paréntesis abierto. Después corrige solo el símbolo que hace falta.

Señal de que ya lo entiendesPuedes provocar este error con un ejemplo mínimo, explicar qué supuesto se rompió y elegir una corrección que conserve la intención del programa.

Referencia técnica: documentación oficial de excepciones de Python.