Código paso a paso de Python

Salman Mehmood 15 febrero 2024
  1. Use el módulo pdb para recorrer el código en Python
  2. Use Python IDLE para recorrer el código en Python
Código paso a paso de Python

Este tutorial hablará sobre cómo usar el depurador de Python para recorrer el código.

Explicaremos desde cero acerca de una herramienta de línea de comandos que se llama PDB. También aprenderemos cómo recorrer paso a paso el código con la ayuda de Python IDLE.

Use el módulo pdb para recorrer el código en Python

Al igual que otros lenguajes de programación, Python también tiene una excelente herramienta para depurar el script de Python, el pdb, que significa Python Debugger.

Ya está instalado cada vez que instala Python en su sistema operativo, por lo que no necesita instalar un pdb por separado. Si tiene Python instalado, funcionará en su terminal.

El módulo pdb es una herramienta que te ahorrará una cantidad increíble de tiempo de depuración; nos ayuda a examinar el estado de un programa en ejecución. Podemos experimentar con él, cambiar los valores de las variables, llamar a funciones con diferentes argumentos, ejecutar fragmentos de código, etc.

Es mucho más potente que una declaración de print habitual y ofrece una imagen diferente a la de las pruebas. Nuestras pruebas solo indican que nuestro código no funciona como se esperaba, mientras que la depuración nos permite ver qué sucede durante la ejecución del programa.

Ahora puede preguntarse por qué usamos pdb si ya tenemos el IDE de PyCharm y podemos depurar nuestro código en el IDE de PyCharm. La razón para usar pdb es que, a veces, en situaciones de la vida real, probablemente ejecutará su secuencia de comandos de Python en algún servidor.

Por lo general, no puede darse el lujo de usar un IDE en estos servidores. Tendrá que usar la terminal para depurar su secuencia de comandos de Python; es por eso que le mostraremos cómo depurar un script de Python utilizando la herramienta de línea de comandos, pdb.

En el módulo pdb, hay un punto de interrupción llamado set_trace(). Usando esta función, tendrá un punto de interrupción donde podrá examinar diferentes valores de variables y hacer lo que quiera.

Solo necesitamos dos líneas de código insertadas en nuestro programa, y luego obtenemos operaciones de línea de comando que podemos hacer un montón de cosas diferentes. Lo demostraremos en breve.

Antes de saltar al código, veremos un resumen de algunas de las diferentes operaciones de la línea de comandos.

Operaciones Descripción
n Esto ejecutará la siguiente línea de código.
c Esta operación continuará ejecutando el código y completará la ejecución.
l Esta operación enumerará las 3 líneas antes y después de la línea en la que se encuentra la ejecución, para que pueda ver dónde y qué tres líneas se acaban de ejecutar.
s Le permitirá entrar en una llamada de función. Ahora, si usa n cuando ingresa a una función, ejecutará la función completa y pasará a la siguiente línea después de la llamada a la función.
La s le permite ingresar a una función y ejecutarla línea por línea.
b Le permitirá establecer puntos de interrupción. Puede establecer múltiples puntos de interrupción poniendo el comando b dentro del programa.
b[int] Podemos configurar b seguido de un número entero para establecer un punto de interrupción en una línea específica de un número (por ejemplo, b10).
b[func] La b va seguida de un nombre de función para establecer un punto de interrupción en un nombre de función sin corchetes.
cl Borrará todos los puntos de interrupción.
cl[int] El cl seguido de un número entero borrará el punto de interrupción en un número de línea específico, y el espacio es opcional. Podemos poner cl10 o cl 10; eso no hace ninguna diferencia.
p También tenemos la opción de imprimir. Digamos que tenemos una variable x; si lo escribimos en el shell de Python, imprimirá el valor de x.
Podemos usar la declaración p con los paréntesis. Dentro de los paréntesis, solo ponemos una variable.

Hay más operaciones disponibles. Puedes leer y aprender más al respecto aquí.

Veamos un ejemplo en el que escribimos un pequeño programa. No hace nada; simplemente establece algunos valores de variables, declaraciones de print y realiza algunas funciones matemáticas.

Podemos ver que importamos pdb, y luego establecemos un punto de interrupción usando la función set_trace().

import pdb


def transform(x, y):
    x *= 2
    y = y ** 2
    z = x + y
    return z


x = 50
y = 60
z = 5
n = 1000

pdb.set_trace()
transform(5, 10)
print("z =" + str(z))
n = transform(2, 3)
print("n =" + str(n))

Veamos cómo funciona el programa y cómo se usa el depurador para analizar algunas funciones. Entonces, cuando ejecutamos el programa, vemos que hemos ingresado Python en el símbolo del sistema del depurador.

La siguiente línea que se ejecutará sería la función transform(), por lo que lo primero que deberíamos hacer es mirar la lista l. Mostrará las tres líneas anteriores que se ejecutaron y las siguientes tres líneas que se ejecutarán, y muestra dónde estamos ubicados en este momento que indica el uso de ->.

Código paso a paso de Python usando pdb - Salida 1

Ahora tenemos la opción de usar el comando n para ejecutar la siguiente línea, que haría toda la función transformar() y saltar a la línea 15. O podemos usar s para pasar a la función transformar () línea por línea dentro de la función transform() y vea lo que sucede dentro de ella.

Usaremos n para ver qué pasó allí. Usando n, ejecutamos la función transform().

Si queremos imprimir valores de variables, podemos escribir los nombres de las variables, pero no podemos imprimir n porque n nos dará la siguiente línea de ejecución.

La alternativa sería utilizar el comando p() mientras se coloca la variable n entre paréntesis para imprimir su valor.

Código paso a paso de Python usando pdb - Salida 2

También podemos usar el comando b si queremos ver qué otros puntos de interrupción hemos establecido, por lo que si escribimos b, no devuelve nada, pero podemos establecer otro punto de interrupción en la línea 16. Ahora, si escribimos b, enumera nuestros puntos de interrupción.

El cl borrará todos los puntos de interrupción. Digamos que sí, entonces eliminamos nuestros puntos de interrupción.

También podemos establecer un punto de interrupción en el nombre de una función. Si hacemos eso, tendremos un punto de interrupción establecido al comienzo de la función transform(), por lo que ingresaremos a la función transform() cada vez que ingresemos esa función.

Si ponemos c, continuará hasta el siguiente punto de interrupción, y si de nuevo ponemos c, eso termina nuestro código.

Código paso a paso de Python usando pdb - Salida 3

La depuración en el código se puede lograr usando la función breakpoint(), una nueva función integrada introducida en la versión 3.7.

De acuerdo con los docs oficiales de Python, por defecto, detrás de escena básicamente llamamos a pdb.set_trace() usando breakpoint(). No necesitamos importar pdb y llamar a set_trace(), en lugar de usar esto, podemos usar breakpoint() que funciona igual.

Use Python IDLE para recorrer el código en Python

Esta sección mostrará cómo depurar un programa Python usando Python IDLE. Para demostrarlo, tomaremos un ejemplo que suma dos números.

n1 = int(input("Enter a first number :"))
n2 = int(input("Enter a second number :"))
Res = n1 + n2
print(n1, "+", n2, Res)

Para usar el depurador en Python IDLE, primero debemos encender el depurador para abrir Python IDLE. Después de abrir Python IDLE, podemos abrir la opción de depuración ubicada en la parte superior.

Después de hacer clic, aparecerá una ventana de control de depuración. Aquí podemos ver que la depuración está activada.

Código paso a paso de Python usando Python IDLE - Ejemplo 1

Después de abrirlo, podemos ver la ventana de control de depuración. Esta ventana de control está inactiva y no podemos hacer clic en ella en ningún lado.

Tendremos que ejecutar el script de Python mientras presionamos f5 para activarlo.

En la ventana de control de depuración, hay varios botones; los nombres de los botones son ir, paso, sobre, fuera y salir. Si pulsamos ir, nos pedirá que introduzcamos la entrada y demos la salida tras poner la entrada; de lo contrario, se atascará.

El uso de out supone que está ejecutando una función, por lo que finalizará la ejecución del código y no le mostrará la ejecución paso a paso del programa. Simplemente ejecutará el programa y le mostrará la salida; es útil cuando desea omitir la ejecución paso a paso.

Si desea ver cómo funciona este programa, qué línea se ejecuta y cómo fluye este programa, puede usar este paso o más. La opción paso te dará toda la información sobre el programa.

Si no queremos saber cómo funciona internamente el programa y sólo queremos saber qué línea se está ejecutando para eso, la mejor opción es over. El último es quit; si usamos quit, se cerrará durante la ejecución de un programa.

Aquí hay algunos trabajos de depuración usando Python IDLE.

Código paso a paso de Python usando Python IDLE - Ejemplo 2

Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn