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

Table of contents