La depuració és una part essencial del desenvolupament de programari. Ens ajuda a identificar i corregir errors en el codi, assegurant que les aplicacions funcionin correctament. En aquest tema, explorarem diverses tècniques de depuració que poden ser utilitzades per a trobar i solucionar problemes en el codi Python.

Continguts

Introducció a la Depuració

La depuració és el procés de localitzar i corregir errors o defectes en el codi. Els errors poden ser de diversos tipus, com ara errors de sintaxi, errors lògics, errors de temps d'execució, etc. La depuració efectiva requereix una combinació de tècniques i eines.

Ús de Print Statements

Una de les tècniques més senzilles i utilitzades per a la depuració és l'ús de print statements. Aquesta tècnica consisteix a inserir instruccions print en el codi per a mostrar el valor de variables i l'estat del programa en diferents punts de l'execució.

Exemple:

def suma(a, b):
    print(f"Valors d'entrada: a={a}, b={b}")
    resultat = a + b
    print(f"Resultat de la suma: {resultat}")
    return resultat

suma(3, 5)

Explicació:

  • print(f"Valors d'entrada: a={a}, b={b}"): Mostra els valors d'entrada de la funció.
  • print(f"Resultat de la suma: {resultat}"): Mostra el resultat de la suma abans de retornar-lo.

Depuració amb pdb

El mòdul pdb (Python Debugger) és una eina poderosa per a la depuració interactiva de codi Python. Permet executar el codi pas a pas, establir punts de ruptura (breakpoints), inspeccionar variables i molt més.

Exemple:

import pdb

def suma(a, b):
    pdb.set_trace()  # Punt de ruptura
    resultat = a + b
    return resultat

suma(3, 5)

Comandes bàsiques de pdb:

  • n: Executa la següent línia de codi.
  • c: Continua l'execució fins al següent punt de ruptura.
  • q: Surt del depurador.
  • p <variable>: Mostra el valor de la variable especificada.

Depuració amb IDEs

Molts Entorns de Desenvolupament Integrats (IDEs) com PyCharm, Visual Studio Code, i altres, ofereixen eines de depuració integrades que faciliten la depuració del codi. Aquestes eines permeten establir punts de ruptura, executar el codi pas a pas, inspeccionar variables, i molt més, tot des d'una interfície gràfica.

Exemple amb PyCharm:

  1. Estableix un punt de ruptura fent clic a la vora esquerra del codi.
  2. Executa el programa en mode de depuració.
  3. Utilitza les eines de depuració per a inspeccionar variables i executar el codi pas a pas.

Depuració de Codi en Producció

Depurar codi en un entorn de producció pot ser més complicat, ja que no es pot interrompre l'execució del programa com en un entorn de desenvolupament. Algunes tècniques inclouen:

  • Registre (Logging): Utilitza el mòdul logging per a registrar informació important sobre l'execució del programa.
  • Monitorització: Utilitza eines de monitorització per a supervisar el rendiment i detectar anomalies.

Exemple de registre:

import logging

logging.basicConfig(level=logging.INFO)

def suma(a, b):
    logging.info(f"Valors d'entrada: a={a}, b={b}")
    resultat = a + b
    logging.info(f"Resultat de la suma: {resultat}")
    return resultat

suma(3, 5)

Consells Addicionals

  • Divideix i venceràs: Divideix el codi en parts més petites per a identificar més fàcilment on es troba l'error.
  • Reprodueix l'error: Intenta reproduir l'error de manera consistent per a entendre millor les seves causes.
  • Revisa el codi recent: Si l'error ha aparegut recentment, revisa els canvis recents en el codi.

Exercicis Pràctics

Exercici 1:

Depura el següent codi utilitzant print statements per a trobar l'error:

def multiplica(a, b):
    resultat = a * b
    return resultat

print(multiplica(3, '5'))

Solució:

def multiplica(a, b):
    print(f"Valors d'entrada: a={a}, b={b}")
    resultat = a * b
    print(f"Resultat de la multiplicació: {resultat}")
    return resultat

print(multiplica(3, '5'))

Exercici 2:

Utilitza pdb per a depurar el següent codi i trobar l'error:

def resta(a, b):
    resultat = a - b
    return resultat

print(resta(10, 5))
print(resta(5, 10))

Solució:

import pdb

def resta(a, b):
    pdb.set_trace()  # Punt de ruptura
    resultat = a - b
    return resultat

print(resta(10, 5))
print(resta(5, 10))

Conclusió

La depuració és una habilitat essencial per a qualsevol programador. En aquest tema, hem explorat diverses tècniques de depuració, des de l'ús de print statements fins a l'ús d'eines avançades com pdb i IDEs. A més, hem vist com depurar codi en producció i hem proporcionat consells addicionals per a una depuració efectiva. Practica aquestes tècniques per a millorar les teves habilitats de depuració i assegurar-te que el teu codi funcioni correctament.

Curs de Programació en Python

Mòdul 1: Introducció a Python

Mòdul 2: Estructures de Control

Mòdul 3: Funcions i Mòduls

Mòdul 4: Estructures de Dades

Mòdul 5: Programació Orientada a Objectes

Mòdul 6: Gestió de Fitxers

Mòdul 7: Gestió d'Errors i Excepcions

Mòdul 8: Temes Avançats

Mòdul 9: Proves i Depuració

Mòdul 10: Desenvolupament Web amb Python

Mòdul 11: Ciència de Dades amb Python

Mòdul 12: Projecte Final

© Copyright 2024. Tots els drets reservats