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
¡Leer el Traceback
con calma te ayuda a encontrar rápidamente el problema y solucionarlo!
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.