3. El bucle for

El bucle for permet repetir un conjunt d’instruccions per a cada element d’una seqüència.

La paraula for significa “per a cada”.

El bucle for recorre una seqüència i executa el codi una vegada per cada element.


3.1 Estructura general del for

La forma general d’un bucle for és:

for variable in sequencia:
    instruccio_1
    instruccio_2
    ...

Aspectes importants:

  • la variable pren cada valor de la seqüència
  • la seqüència pot ser un range, una llista, una cadena, etc.
  • el codi dins del for ha d’estar indentat
  • el bucle acaba quan s’han recorregut tots els elements

3.2 El for amb range()

El cas més habitual és repetir un nombre concret de vegades amb range().

Exemple:

for i in range(5):
    print(i)

Resultat:

  • es mostren els valors: 0 1 2 3 4
  • el bucle s’executa 5 vegades

range(5) genera els números des de 0 fins a 4.


Exemple: comptar de 1 a 5

for numero in range(1, 6):
    print(numero)

Què passa ací?

  • range(1, 6) genera els valors: 1, 2, 3, 4, 5
  • el 6 no s’inclou
  • el bucle acaba automàticament

3.3 Parts essencials d’un for

Tot bucle for correcte té dos elements clau:

1) Seqüència

És el conjunt de valors que es recorren.

range(1, 6)

2) Variable de control

És la variable que pren cada valor de la seqüència.

for numero in range(1, 6):

No cal inicialitzar ni actualitzar manualment la variable.


3.4 El for controla ell mateix el final

A diferència del while, el for:

  • sap quants valors té la seqüència
  • s’atura automàticament quan s’acaben

Exemple:

for i in range(3):
    print("Hola")

El missatge es mostra exactament tres vegades.


3.5 for amb llistes

El for és ideal per a recórrer col·leccions de dades.

Exemple:

fruites = ["poma", "pera", "plàtan"]

for fruita in fruites:
    print(fruita)

Funcionament:

  • fruita pren cada valor de la llista
  • el bucle s’executa una vegada per element

3.6 for amb cadenes de text

Una cadena és també una seqüència de caràcters.

Exemple:

paraula = "hola"

for lletra in paraula:
    print(lletra)

Resultat:

  • es mostra una lletra en cada línia
  • el bucle recorre tota la cadena

3.7 Exemple d’error típic amb for

Error habitual: modificar manualment la variable del for.

for i in range(5):
    print(i)
    i = i + 1

Problema:

  • el for ignora el canvi
  • la variable es controla automàticament
  • el comportament pot confondre

Mai s’ha de modificar la variable de control d’un for.


3.8 for amb range() avançat

range() permet definir inici, final i pas.

for i in range(0, 10, 2):
    print(i)

Resultat:

  • mostra: 0 2 4 6 8
  • el tercer valor indica el pas

3.9 Diferència entre for i while

És fonamental saber quan usar cada un.

for

for i in range(5):
    print(i)
  • nombre de repeticions conegut
  • control automàtic
  • codi més curt i clar

while

i = 0
while i < 5:
    print(i)
    i = i + 1
  • nombre de repeticions desconegut
  • cal controlar la condició
  • més flexible, però més perillós

3.10 Quan usar cada bucle

Use for quan:

  • sabem quantes vegades s’ha de repetir
  • recorrem llistes, textos o rangs
  • no volem errors de bucle infinit

Use while quan:

  • depenem d’una condició
  • validem entrades d’usuari
  • no sabem quan acabarà el bucle

3.11 Altres sintaxis i paraules clau dels bucles

break

Permet eixir del bucle immediatament.

for i in range(10):
    if i == 5:
        break
    print(i)

El bucle s’atura quan i val 5.


continue

Permet saltar a la següent iteració.

for i in range(5):
    if i == 2:
        continue
    print(i)

El valor 2 no es mostra.


else en bucles

Un bucle pot tindre un else.

for i in range(3):
    print(i)
else:
    print("Bucle acabat")

El else:

  • s’executa quan el bucle acaba normalment
  • no s’executa si hi ha un break

En resum

Hem de tindre en compte:

  • for és ideal per a seqüències i repeticions controlades
  • while és millor per a condicions obertes
  • break i continue alteren el flux del bucle
  • usar el bucle adequat fa el codi més clar i segur

Table of contents