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:
- Estableix un punt de ruptura fent clic a la vora esquerra del codi.
- Executa el programa en mode de depuració.
- 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:
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:
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
- 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