Introducció
El depurador pdb
(Python Debugger) és una eina poderosa que permet als desenvolupadors inspeccionar i controlar l'execució del codi Python en temps real. Amb pdb
, pots fer un seguiment de l'execució del programa, establir punts de ruptura, inspeccionar variables i molt més. Aquest mòdul t'ensenyarà com utilitzar pdb
per depurar els teus programes Python de manera eficient.
Continguts
Introducció a pdb
pdb
és el depurador integrat de Python que permet als desenvolupadors:
- Pausar l'execució del programa en punts específics.
- Examinar l'estat del programa (variables, pila de crides, etc.).
- Executar línia per línia per entendre el flux del programa.
- Modificar variables en temps real per provar diferents escenaris.
Iniciar pdb
Hi ha diverses maneres d'iniciar pdb
en un programa Python:
- Iniciar pdb des de la línia de comandes
Pots iniciar pdb
executant el teu script amb l'opció -m pdb
:
- Iniciar pdb des del codi
També pots inserir una crida a pdb.set_trace()
directament en el teu codi:
import pdb def funcio(): x = 10 pdb.set_trace() # Pausa l'execució aquí y = 20 z = x + y print(z) funcio()
Quan el programa arribi a pdb.set_trace()
, entrarà en el mode de depuració.
Comandes bàsiques de pdb
A continuació es mostren algunes de les comandes més útils de pdb
:
Comanda | Descripció |
---|---|
l o list |
Mostra el codi al voltant de la línia actual. |
n o next |
Executa la següent línia de codi. |
s o step |
Entra en la següent funció. |
c o continue |
Continua l'execució fins al següent punt de ruptura. |
q o quit |
Surt del depurador. |
p o print |
Imprimeix el valor d'una variable. |
h o help |
Mostra ajuda sobre les comandes disponibles. |
Establir punts de ruptura
Els punts de ruptura permeten pausar l'execució del programa en línies específiques. Pots establir punts de ruptura de diverses maneres:
- Des de la línia de comandes de pdb
- Des del codi
Utilitza pdb.set_trace()
com hem vist anteriorment.
Exemple:
import pdb def suma(a, b): return a + b def resta(a, b): return a - b pdb.set_trace() # Pausa aquí x = suma(10, 5) y = resta(10, 5) print(x, y)
Inspeccionar variables
Pots utilitzar la comanda p
per imprimir el valor de les variables:
També pots modificar el valor de les variables en temps real:
Exercicis pràctics
Exercici 1: Depuració bàsica
- Crea un script Python amb el següent codi:
def multiplicacio(a, b): return a * b def divisio(a, b): return a / b x = multiplicacio(10, 5) y = divisio(10, 0) # Això generarà una excepció print(x, y)
- Utilitza
pdb
per depurar l'error de divisió per zero.
Solució:
- Inicia
pdb
des de la línia de comandes:
- Quan el programa es pausi, utilitza les comandes
n
ip
per inspeccionar les variables i trobar l'error.
Exercici 2: Establir punts de ruptura
- Modifica el codi anterior per incloure un punt de ruptura abans de la divisió.
import pdb def multiplicacio(a, b): return a * b def divisio(a, b): return a / b x = multiplicacio(10, 5) pdb.set_trace() # Pausa aquí y = divisio(10, 0) # Això generarà una excepció print(x, y)
- Executa el codi i utilitza
pdb
per depurar l'error.
Conclusió
El depurador pdb
és una eina essencial per a qualsevol desenvolupador Python. Amb pdb
, pots inspeccionar i controlar l'execució del teu codi en temps real, la qual cosa facilita la identificació i correcció d'errors. Practica utilitzant pdb
en els teus projectes per millorar les teves habilitats de depuració i escriure codi més robust i fiable.
Curs de Programació en Python
Mòdul 1: Introducció a Python
- Introducció a Python
- Configuració de l'Entorn de Desenvolupament
- Sintaxi de Python i Tipus de Dades Bàsics
- Variables i Constants
- Entrada i Sortida Bàsiques
Mòdul 2: Estructures de Control
Mòdul 3: Funcions i Mòduls
- Definició de Funcions
- Arguments de Funció
- Funcions Lambda
- Mòduls i Paquets
- Visió General de la Biblioteca Estàndard
Mòdul 4: Estructures de Dades
Mòdul 5: Programació Orientada a Objectes
Mòdul 6: Gestió de Fitxers
- Lectura i Escriptura de Fitxers
- Treballant amb Fitxers CSV
- Gestió de Dades JSON
- Operacions amb Fitxers i Directoris
Mòdul 7: Gestió d'Errors i Excepcions
Mòdul 8: Temes Avançats
- Decoradors
- Generadors
- Gestors de Context
- Concurrència: Fils i Processos
- Asyncio per a Programació Asíncrona
Mòdul 9: Proves i Depuració
- Introducció a les Proves
- Proves Unitàries amb unittest
- Desenvolupament Guiat per Proves
- Tècniques de Depuració
- Ús de pdb per a la Depuració
Mòdul 10: Desenvolupament Web amb Python
- Introducció al Desenvolupament Web
- Conceptes Bàsics del Framework Flask
- Construcció d'APIs REST amb Flask
- Introducció a Django
- Construcció d'Aplicacions Web amb Django
Mòdul 11: Ciència de Dades amb Python
- Introducció a la Ciència de Dades
- NumPy per al Càlcul Numèric
- Pandas per a la Manipulació de Dades
- Matplotlib per a la Visualització de Dades
- Introducció al Machine Learning amb scikit-learn