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
forrecorre 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:
fruitapren 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
forignora 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 controladeswhileés millor per a condicions obertesbreakicontinuealteren el flux del bucle- usar el bucle adequat fa el codi més clar i segur