Conceptos Básicos

Tipos de errores: lógicos y sintácticos


Tipos de errores: sintácticos, de ejecución y lógicos:

Cuando estamos programando, cometer errores es algo absolutamente normal, sobre todo al principio.

La clave para ser un buen programador no es nunca equivocarse, sino saber cómo encontrar y corregir los errores rápidamente.


1. Errores sintácticos:

Un error sintáctico ocurre cuando escribimos el código de forma incorrecta y violamos las reglas del lenguaje.

La sintaxis es como la gramática en un idioma: define la manera correcta de escribir instrucciones para que Python las entienda.

Ejemplo de un error sintáctico común:
print("Hola Mundo   # Olvidar cerrar el paréntesis

¿Qué pasa cuando hay un error sintáctico?

Python no ejecutará el programa y mostrará un mensaje de error que comienza con:

SyntaxError: invalid syntax

Ejemplo real:
print("Hola Mundo)
Resultado:
ERROR!
Traceback (most recent call last):
  File "<stdin>", line 1
    print("Hola mundo)
                      ^
SyntaxError: EOL while scanning string literal
¿Qué significa?
  • SyntaxError indica que la estructura del código es incorrecta.
  • El error específico (EOL while scanning string literal) señala que olvidaste cerrar las comillas de la cadena de texto.

2. Errores en tiempo de ejecución:

Un error de ejecución (o error en tiempo de ejecución) ocurre cuando el programa se inicia correctamente, pero falla mientras está en ejecución debido a alguna operación inválida o inesperada.

Estos errores no se detectan mientras escribes el código: solo aparecen al ejecutar.

Ejemplos típicos:
numero = int(input("Introduce un número: "))
resultado = 10 / numero
Si el usuario introduce 0, aparecerá el error:
ZeroDivisionError: division by zero

Otro ejemplo:
print(variable_no_definida)
Resultado:
NameError: name 'variable_no_definida' is not defined

¿Qué es un Traceback?

Cuando ocurre un error, Python muestra un mensaje detallado llamado Traceback.

Un Traceback incluye:

  • La línea exacta donde ocurrió el error.
  • El tipo de error detectado.
  • Una breve descripción del problema.
Ejemplo de Traceback:
Traceback (most recent call last):
  File "programa.py", line 3, in <module>
    print(variable_no_definida)
NameError: name 'variable_no_definida' is not defined


3. Errores lógicos o semánticos:

Un error lógico ocurre cuando tu programa no produce el resultado esperado, aunque no haya ningún error de sintaxis ni de ejecución.

En otras palabras:
  • El programa corre sin fallas.
  • Pero el resultado es incorrecto porque la lógica usada fue errónea.
Ejemplo de error lógico:
def area_rectangulo(base, altura):
    return base + altura   # Error: debería ser base * altura

Este código no lanzará ningún error de Python. Sin embargo, el área de un rectángulo no se calcula sumando la base y la altura, sino multiplicándolas.


Errores lógicos son los más difíciles de detectar, porque:
  • Python no te avisará.
  • Solo al analizar el resultado notarás que algo no funciona como debería.
¿Cómo detectar errores lógicos?

La técnica principal para detectar errores lógicos es la depuración(debugging):

  • Revisar tu código paso a paso.
  • Agregar instrucciones print() para observar los valores de las variables.
  • Verificar manualmente si los cálculos o decisiones son correctos.

Consejos para trabajar con errores:

  • Lee el mensaje de error completo: suele indicar la línea exacta y el tipo de error.
  • No entres en pánico: los errores son parte normal del proceso de aprendizaje.
  • Depura con paciencia: verifica valores intermedios usando print() si es necesario.
  • Busca patrones: algunos errores se repiten mucho, aprender a reconocerlos te hará más rápido.