Concepto
Un error no significa que rompiste algo: es Python diciéndote en qué línea se detuvo y por qué. Leer bien el mensaje ahorra más tiempo que tratar de no equivocarse nunca.
Cómo leer un error. Empieza por la última línea: dice el tipo de error y un mensaje corto. Arriba aparece el número de línea donde ocurrió. En el editor de esta página, además, verás una explicación en español debajo del código.
Traceback (most recent call last): File "<exec>", line 2, in <module> NameError: name 'precio_total' is not defined
SyntaxError: algo está mal escrito. Falta un paréntesis, unas comillas o los dos puntos al final de un if. Python lo detecta antes de ejecutar cualquier línea, así que no se ejecuta nada hasta corregirlo.
if cantidad > 2 # faltan los dos puntos
descuento = 0.1IndentationError: la sangría no calza. Python usa la sangría (los espacios al inicio de la línea) para saber qué líneas forman un bloque. Una línea con espacios de más o de menos rompe esa estructura.
precio = 1000
cantidad = 3 # sangría que no correspondeNameError: un nombre que no existe. Usaste una variable que nunca se creó, casi siempre por un error de tipeo. El mensaje dice el nombre exacto que Python no encontró: compáralo letra por letra con el que creaste.
Uno a la vez. Python se detiene en el primer error que encuentra. Al corregirlo puede aparecer el siguiente: es avance, no retroceso.
> tarea Python
Este código tiene tres errores: uno de sintaxis, uno de sangría y uno de nombre. Ejecútalo, lee cada mensaje y corrígelos de a uno hasta que total quede calculado (precio por cantidad, con el descuento aplicado).
Primero intenta: las pistas aparecen después de 2 intentos con un resultado incorrecto (los errores de código no cuentan). Llevas 0.