Errores en Python
Los más comunes:
- No leer el enunciado de forma completa antes de empezar a codificar.
- Confusión entre
printyreturn: Usarprint()dentro de las funciones en lugar dereturn. - Uso de variables no definidas (scope y flujo): Intentar usar una variable que solo se ha creado dentro de un
ifo untryque podría no ejecutarse (generando unUnboundLocalError), o usar variables antes de definirlas. input()dentro de funciones con parámetros: Funciones que reciben los datos como argumentos (ej:def funcion(lista):) pero que dentro vuelven a pedir los datos al usuario coninput().returnmal posicionado (romper bucles antes de tiempo): Colocarreturndentro de un bucleforoifsin la indentación correcta, rompiendo bucles antes de tiempo y no ejecutando las instrucciones siguientes.- Decimales con coma: Escribir
0,6en lugar de0.6. Python interpreta la coma como una tupla(0, 6), rompiendo las operaciones matemáticas.
Los menos comunes:
- Case sensitivity: Confundir mayúsculas y minúsculas en variables (
Valorvsvalor) o palabras reservadas (nonevsNone). - Tipos de datos: Tratar cadenas como números (comparar
"5" > "10") o guardar números como texto en listas. - Listas vacías: No comprobar si una lista está vacía antes de acceder a ella (
lista[0]) o dividir por su longitud cuando ésta es 0, provocando errores de ejecución (IndexError,ZeroDivisionError). - Modificación incorrecta: Intentar sumar elementos sobrescribiendo la variable (
total = n) en lugar de acumular (total += n). - Hardcoding: Escribir nombres concretos (ej.
estudiantes['Ana']) dentro de una función genérica, haciendo que solo funcione para ese caso específico. - Falsa recursividad: Usar bucles
for/whilecuando el enunciado exige explícitamente resolver el problema mediante recursividad. - Bucles infinitos: Condiciones de salida inalcanzables (ej. comparar
texto.lower() == "FIN"en mayúsculas). - Pérdida de orden: Usar
set()para eliminar duplicados cuando se requería mantener el orden original de la lista.