1. Bucles en Python
Un bucle és una estructura de control que permet repetir un conjunt d’instruccions diverses vegades, sense haver d’escriure el mateix codi una i altra vegada.
Fins ara, amb els condicionals (if, elif, else), el programa:
- decidia què fer
- però cada instrucció s’executava una sola vegada
Amb els bucles, el programa pot:
- repetir accions
- treballar amb sèries de dades
- automatitzar tasques repetitives
Un bucle permet executar el mateix codi tantes vegades com siga necessari, mentre es complisca una condició o per a un nombre determinat de repeticions.
Exemple (sense bucles)
Imaginem que volem mostrar un missatge 5 vegades.
Sense bucles, hauríem d’escriure:
print("Hola")
print("Hola")
print("Hola")
print("Hola")
print("Hola")
Açò:
- funciona
- però no és eficient
- no és flexible
- no és escalable
Si després volem mostrar-ho 1000 vegades, el problema és evident.
Amb bucles (idea general)
Amb un bucle, podem dir al programa:
“Repeteix este codi mentre passe una cosa” o “Repeteix este codi un nombre determinat de vegades”
I el programa ho fa automàticament.
2. Per què necessitem bucles?
2.1 Repetició de tasques
Moltes tasques informàtiques són repetitives:
- mostrar un menú diverses vegades
- demanar dades a diversos usuaris
- sumar una sèrie de números
- comptar elements
- recórrer una llista
Sense bucles, el codi seria:
- molt llarg
- difícil de mantindre
- ple d’errors
2.2 Automatització
Els bucles permeten automatitzar processos.
Per exemple:
- calcular la suma dels primers 10 números
- repetir una pregunta fins que l’usuari responga bé
- comprovar moltes dades una darrere d’una altra
Sense bucles, estes tasques serien pràcticament impossibles o molt poc pràctiques.
2.3 Flexibilitat del programa
Amb bucles, els programes:
- s’adapten a diferents situacions
- funcionen amb qualsevol quantitat de dades
- no depenen de nombres fixos
Per exemple:
- no sabem quants intents farà un usuari
- no sabem quants números introduirà
- no sabem quantes vegades cal repetir una acció
Els bucles resolen este problema.
2.4 Relació amb els condicionals
Els bucles no substituïxen els condicionals: treballen junts.
- El condicional decideix què fer
- El bucle decideix quantes vegades fer-ho
Exemple::
- “Si la resposta no és correcta, torna a preguntar”
- “Mentre l’usuari no escriga ‘eixir’, continua”
Açò combina:
- una condició
- amb una repetició
3. Tipus de repetició
Abans de veure la sintaxi, és important entendre les dos formes bàsiques de repetir codi.
3.1 Repetició controlada per una condició
El programa repeteix el codi mentre una condició siga certa.
Exemple conceptual:
- “Mentre el número siga negatiu, torna a demanar-lo”
- “Mentre no s’encerte la contrasenya, continua preguntant”
En este cas:
- no sabem quantes vegades es repetirà el codi
- depén del que faça l’usuari o de les dades
3.2 Repetició controlada per un nombre de vegades
El programa repeteix el codi un nombre concret de vegades.
Exemple conceptual:
- “Repeteix açò 10 vegades”
- “Mostra els números de l’1 al 5”
En este cas:
- sí que sabem quantes repeticions hi haurà
- el bucle té un inici i un final clars
Abans d’escriure un bucle, sempre hem de tindre clar:
- què es vol repetir
- per què
- i quan ha de parar
4. El gran perill: bucles infinits
Un concepte clau que cal entendre des del principi és el de bucle infinit.
Què és un bucle infinit?
És un bucle que no acaba mai, perquè la condició que el controla mai deixa de complir-se.
Exemple conceptual:
- una condició que sempre és certa
- una variable que no canvia mai
Un bucle infinit:
- bloqueja el programa
- fa que no responga
- obliga a parar-lo manualment
Tot bucle ha de tindre una manera clara d’acabar.
Açò pot ser:
- un canvi en una variable
- una entrada correcta de l’usuari
- arribar a un límit establit
Com evitar bucles infinits
Per evitar bucles infinits, cal:
- assegurar-se que la condició del bucle canvia en algun moment
- revisar que les variables que controlen el bucle s’actualitzen correctament
- etc