Els bucles són una eina fonamental en la programació que permeten repetir un bloc de codi diverses vegades. En Python, els dos tipus principals de bucles són for
i while
. Aquest mòdul t'ensenyarà com utilitzar aquests bucles per controlar el flux del teu programa.
Bucles for
El bucle for
s'utilitza per iterar sobre una seqüència (com una llista, una tupla, un diccionari, un conjunt o una cadena de caràcters). La sintaxi bàsica és la següent:
Exemple 1: Iterar sobre una llista
Explicació:
fruites
és una llista que conté tres elements.- El bucle
for
iterarà sobre cada element de la llista i executarà el bloc de codi dins del bucle, imprimint cada fruita.
Exemple 2: Utilitzar range()
La funció range()
genera una seqüència de nombres. És molt útil per iterar un nombre determinat de vegades.
Explicació:
range(5)
genera una seqüència de nombres de 0 a 4.- El bucle
for
iterarà sobre aquests nombres i els imprimirà.
Exemple 3: Iterar sobre un diccionari
estudiants = {"Anna": 22, "Joan": 21, "Maria": 23} for nom, edat in estudiants.items(): print(f"{nom} té {edat} anys")
Explicació:
estudiants.items()
retorna una vista d'objectes de diccionari que conté tuples de parells (clau, valor).- El bucle
for
iterarà sobre aquests parells i els imprimirà.
Bucles while
El bucle while
repeteix un bloc de codi mentre una condició sigui certa. La sintaxi bàsica és la següent:
Exemple 1: Bucle senzill while
Explicació:
- El bucle
while
continuarà executant-se mentrei
sigui menor que 5. - A cada iteració,
i
s'incrementa en 1.
Exemple 2: Bucle infinit (amb condició de sortida)
Explicació:
- El bucle
while True
és un bucle infinit. - La condició de sortida és quan l'usuari introdueix "sí", moment en què el bucle es trenca amb
break
.
Comparació de for
i while
Característica | for |
while |
---|---|---|
Iteració | Sobre una seqüència | Basat en una condició |
Ús comú | Quan el nombre d'iteracions és conegut | Quan el nombre d'iteracions és desconegut |
Sintaxi | for element in seqüència: |
while condició: |
Exercicis Pràctics
Exercici 1: Iterar sobre una llista de nombres
Escriu un bucle for
que iteri sobre la llista nombres
i imprimeixi només els nombres parells.
nombres = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # Solució for nombre in nombres: if nombre % 2 == 0: print(nombre)
Exercici 2: Bucle while
amb comptador
Escriu un bucle while
que compti de 10 a 1 i després imprimeixi "Despegament!".
Exercici 3: Iterar sobre un diccionari
Escriu un bucle for
que iteri sobre el diccionari productes
i imprimeixi el nom del producte i el seu preu.
productes = {"poma": 1.2, "plàtan": 0.5, "cirera": 2.5} # Solució for producte, preu in productes.items(): print(f"El preu de {producte} és {preu} euros")
Errors Comuns i Consells
- Oblidar incrementar el comptador en un bucle
while
: Això pot causar un bucle infinit. - Utilitzar
for
en lloc dewhile
i viceversa: Tria el bucle adequat segons el context. Utilitzafor
quan saps el nombre d'iteracions iwhile
quan no ho saps. - No utilitzar
break
en bucles infinits: Assegura't de tenir una condició de sortida clara per evitar bucles infinits.
Conclusió
Els bucles for
i while
són eines poderoses per repetir blocs de codi en Python. Saber quan i com utilitzar cada tipus de bucle és essencial per escriure codi eficient i llegible. Practica amb els exercicis proporcionats per consolidar els teus coneixements i estar preparat per a situacions més complexes en el futur.
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