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.
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.
print("Hola Mundo # Olvidar cerrar el paréntesis
Python no ejecutará el programa y mostrará un mensaje de error que comienza con:
SyntaxError: invalid syntax
print("Hola Mundo)
ERROR!
Traceback (most recent call last):
File "<stdin>", line 1
print("Hola mundo)
^
SyntaxError: EOL while scanning string literal
SyntaxError indica que la estructura del
código es incorrecta.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.
numero = int(input("Introduce un número: "))
resultado = 10 / numero
ZeroDivisionError: division by zero
print(variable_no_definida)
NameError: name 'variable_no_definida' is not defined
Cuando ocurre un error, Python muestra un mensaje detallado
llamado Traceback.
Un Traceback incluye:
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!
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.
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.
La técnica principal para detectar errores lógicos es la depuración(debugging):
print() para observar
los valores de las variables.print() si es necesario.