Cómo depurar su código Python

Escribir código que funcione trae una sensación de satisfacción. Pero a menudo ocurre lo contrario cuando encuentra errores.

Sin embargo, la depuración implica eliminar fallas en su código que hacen que su programa se comporte de maneras que usted no desea.

Y al igual que con cualquier otro lenguaje de programación, los errores pueden hacer perder un tiempo valioso al codificar con Python. Desafortunadamente, no puedes evitarlos. Entonces, ¿cómo puedes entenderlos y lidiar con ellos? Estas son algunas de las mejores formas en que puede depurar su código Python.

¿Qué son las excepciones de Python?

Siempre que Python no puede interpretar un código o un comando, genera una excepción. Las excepciones de Python son un conjunto de errores que surgen mientras Python ejecuta su código.

Python genera excepciones para errores usando el bloque try y except . Los comandos ejecutables suelen estar dentro del bloque try .

Pero cuando falla el código dentro de try , Python ejecuta los que están dentro del bloque except .

En esencia, las declaraciones dentro de la palabra clave except son excepciones a las del bloque try , y Python las presenta como errores.

A veces, un intento … excepto el bloque podría contener varias excepciones ( excepto palabras clave). Invariablemente, esto da como resultado una cadena de errores. Y eso explica los típicos errores detallados que a veces se encuentran en Python.

Pueden surgir excepciones cuando usa una función incorporada, una biblioteca o un marco de Python.

Entonces, incluso si escribe la sintaxis correcta, no seguir las reglas de los métodos que está tratando de usar da como resultado excepciones, que a veces pueden ser abrumadoras.

Por ejemplo, es posible que haya escrito solo cinco líneas de código, pero Python se registra con un error en la línea 200.

Eso sucede porque Python genera excepciones que se han predefinido dentro del código fuente de la biblioteca, el marco o el método integrado que está utilizando.

Errores de sintaxis

Python genera un error de sintaxis cada vez que escribe un código o una sintaxis que no reconoce. Son más rastreables que las excepciones detalladas.

Es probable que te encuentres con errores de sintaxis con más frecuencia si eres un principiante en Python. Pero son fáciles de manejar una vez que comprendes cómo manejarlos.

Cómo depurar su código Python

Hay varias excepciones en Python. Pueden incluir errores de sangría, tipo y nombre, entre otros.

Las excepciones pueden provenir de una sola línea o de un bloque de código defectuoso. Desafortunadamente, no hay formas específicas de lidiar con las excepciones. Pero puede manejarlos según las instancias y el tipo de proyecto.

Algunos errores también generan varias excepciones a la vez. En última instancia, encontrará estos errores con más frecuencia al crear aplicaciones de la vida real.

Aunque las excepciones son frustrantes, no se necesita mucho para descubrirlas y resolverlas si tienes paciencia.

Puede utilizar cualquiera o una combinación de los siguientes métodos para depurar Python.

1. Verifique la descripción del error

Una de las mejores formas de tratar los errores de Python es comprobar la descripción del error. Python generalmente dice esto en la última línea de su salida de error.

Por ejemplo, EOF inesperado durante el análisis siempre está relacionado con un paréntesis faltante. Sin embargo, la sintaxis no válida connota una sintaxis incorrecta en algún lugar, mientras que AttributeError aparece cuando intenta llamar a una función incorrecta desde una clase o un objeto.

Hay muchas otras excepciones con las que puede encontrarse. Simplemente rastrear la línea de donde provienen y reescribir su código puede ser clave.

2. Trace la línea de donde proviene el error

Afortunadamente, los errores están ligados a líneas en Python. Entonces, si encuentra un error, preste atención a la línea a la que apunta Python.

Por ejemplo, el error del ejemplo siguiente es un error de tipo porque el código intenta concatenar tipos de datos diferentes (una cadena y un entero).

Ese error, sin embargo, apunta a la línea 2 en el código de ejemplo:

Código:

 db = open("output.txt", "a")
a = "Hello"+1
b = "How do you do?"
db.write(a+", "+b+"
")

Error:

 raceback (most recent call last):
File "C:UsersOmisola IdowuDesktopLato
oup
ew.py", line 2, in
a = "Hello"+1
TypeError: can only concatenate str (not "int") to str

Eche un vistazo a otro ejemplo de error a continuación:

Código:

 def findTotal(a):
for i in a
print(sum(i)*2)

Error:

 File "C:UsersOmisola IdowuDesktopLato
oup
ew.py", line 2
for i in a
^
SyntaxError: invalid syntax

Aquí, Python apunta a un error de sintaxis en la línea 2. Si está familiarizado con Python, descubrir los dos puntos que faltan después del bucle for debería ser fácil.

3. Aproveche el método de seguimiento en la línea de comandos

Si bien puede depurar Python usando el IDLE incorporado, es probable que no lo use cuando trabaje con proyectos más grandes.

Entonces, una de las mejores formas de depurar Python es a través de la interfaz de línea de comandos (CLI). Es sinónimo de ejecutar console.log () en JavaScript.

Si encuentra un error durante la ejecución del código, puede activar su CLI y ejecutar el script defectuoso usando el comando trace .

Funciona al ejecutar una verificación en cada línea de su código y dividir donde encuentra un problema.

Para usar este método, ejecute su archivo así en su línea de comando:

 python -m trace --trace file_name.py

Si bien no es práctico ejecutar todo el script de esta manera, puede crear un archivo Python separado, pegar cada bloque de código (uno a la vez) en ese archivo y luego ejecutar cada código por separado.

Aunque no es lo que hace durante las pruebas unitarias, sigue siendo una forma de depuración unitaria.

4. Pruebe su código

Las pruebas unitarias implican aislar algunas unidades (bloques o líneas) en su código y probarlas para métricas como rendimiento, eficiencia y corrección. Puede pensar en esto como una forma de garantía de calidad en la programación.

Además de las excepciones, a veces puede ocurrir un error debido a un booleano incorrecto, que puede no generar un error, pero puede hacer que su programa se comporte de manera anormal durante la implementación.

Las pruebas unitarias utilizan varias técnicas de depuración para probar y perfilar su código para verificar su corrección mediante la función de aserción . Incluso puede comprobar el tiempo que tarda su código en ejecutarse, etc.

Durante la producción, puede crear un archivo Python separado, generalmente llamado test.py , y probar cada unidad de su código dentro de ese archivo.

Una prueba unitaria puede verse así:

 data = {
"guitars":[
{"Seagull":"$260"},
{"Fender":"$700"},
{"Electric-acoustic":"$600"}
]
}
if len(data["guitars"])==2:
for i in data["guitars"]:
print(i)
assert len(data["guitars"])==2, "Length less than what's required, should be 3"

Debido a que la longitud de la matriz es menor que 3, Python genera un error de afirmación:

 AssertionError: Length less than what's required, should be 3

5. Utilice registros

Verificar errores usando registros es otra forma de depurar su código. Python tiene una biblioteca de registro incorporada. Funciona al detallar cómo se ejecuta su programa en la consola.

Relacionado: Cómo enviar mensajes de correo electrónico automatizados en Python

Sin embargo, el registro es más útil cuando su programa se encuentra en la etapa de implementación. Pero aunque no puede ver los registros en la consola cuando su aplicación está en implementación, puede configurar un Protocolo simple de transferencia de correo (SMTP) para obtener sus registros de código como un correo electrónico.

De esa manera, sabrá en qué punto falla su programa.

6. Utilice el depurador estándar de Python

Python tiene un depurador integrado popular llamado pdb . Debido a que está integrado, simplemente importa importar pdb a su archivo de prueba.

El módulo pdb es útil para depurar programas que se bloquean y terminan abruptamente. El módulo funciona ejecutando su código post-mortem (incluso después de que su programa falla).

Puede ejecutar un archivo Python completo o su unidad usando pdb . Una vez que se inicia pdb , puede usarlo para revisar cada línea de su código para ver dónde se encuentra el error.

Para comenzar con pdb , abra su archivo de Python e inicie el depurador de esta manera:

 import pdb; pdb.set_trace()

Luego puede ejecutar su archivo Python a través de la CLI:

 Python Your_Python_file.py

Verá el módulo pdb entre paréntesis en su CMD. Escriba h para ver una lista de los comandos disponibles para pdb :

 (pdb) h

La salida se ve así:

Por ejemplo, enumere su código línea por línea comenzando desde el punto de inicio:

 (pdb) l

7. Depurar usando IDE

Los entornos de desarrollo integrados (IDE) también son herramientas valiosas para depurar su script de Python.

Visual Studio Code , por ejemplo, con su función Ejecutar y depurar y un complemento de soporte de idiomas llamado Pylance , le permite ejecutar su código en modo de depuración. Pycharm es otro IDE excelente que puede ayudarlo a encontrar fallas en su código.

Relacionado: Los mejores editores de código gratuitos para escribir su aplicación

Eclipse también ofrece un complemento de terceros llamado Pydev para depurar sus scripts de Python fácilmente.

8. Busque soluciones en Internet

Internet también es un recurso confiable que puede buscar para resolver problemas con su código Python, gracias a la comunidad de desarrolladores de Python.

Stackoverflow , por ejemplo, es una comunidad de codificación popular donde puede hacer preguntas y obtener respuestas. Incluso encontrará que la mayoría de los problemas que puede encontrar ya tienen sus soluciones en toda la plataforma.

Además, YouTube contiene una gran cantidad de videos de codificación que puede aprovechar.

La depuración va más allá de deshacerse de los errores

Los errores son una parte integral de la codificación, pero saber cómo manejarlos te hace destacar y te ayuda a codificar más rápido. Sin embargo, la depuración va más allá de la eliminación de errores. A veces, incluso puede tener un código que funcione y que funcione mal; buscar formas de rectificar casilleros también forma parte de la depuración.