# aprenentatge de bucles

Bucles en Python

while i for: com repeteix un programa instruccions, com es controla amb break, continue i pass, i com llegir-ne l'execució pas a pas.

Per què repetim instruccions?

Un bucle executa un bloc de codi repetidament mentre es compleixi (o per a cada element d'una seqüència) una condició. Evita haver d'escriure la mateixa instrucció moltes vegades i permet recórrer llistes, comptar, o esperar un esdeveniment.

while mentre la condició sigui certa

Comprova la condició abans de cada volta. Si és falsa des del principi, el cos no s'executa mai. En Python, el cos es marca amb indentació (espais), no amb claus.

Sintaxi

while condició:
    # cos: s'executa mentre condició sigui certa

Exemple

i = 1
while i <= 5:
    print(i)
    i += 1

S'imprimeixen els nombres 1 a 5. Cada volta: es comprova i <= 5, s'executa el cos, i s'incrementa i manualment — si oblidéssim l'i += 1, el bucle no acabaria mai.

for recorrent una seqüència

Un for en Python recorre els elements d'una seqüència. Amb range(inici, final, pas) es genera una seqüència de nombres sense incloure el valor final.

Sintaxi

for variable in seqüència:
    # cos

Exemple

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

range(1, 6) genera 1, 2, 3, 4, 5 — el 6 no s'inclou mai. A cada volta, i pren el següent valor del rang; quan s'exhaureix, el bucle acaba tot sol, sense necessitat d'incrementar res a mà.

Control del flux dins un bucle

De vegades cal sortir abans d'hora, saltar-nos una volta concreta, o simplement no fer res.

break

Talla el bucle immediatament: no es torna a comprovar la condició ni el rang, s'ix directament del bucle.

for i in range(1, 11):
    if i == 4:
        break
    print(i)
# imprimeix: 1 2 3

continue

Salta directament a la següent volta, sense executar la resta del cos d'aquesta volta.

for i in range(1, 6):
    if i == 3:
        continue
    print(i)
# imprimeix: 1 2 4 5  (el 3 no s'arriba a imprimir)

pass

No fa absolutament res. És un marcador de lloc buit: s'utilitza quan la sintaxi exigeix un bloc (per exemple dins un if) però encara no hi vols posar cap instrucció. A diferència de continue, pass no salta res: l'execució simplement continua a la línia següent com si aquell bloc no hi fos.

for i in range(1, 6):
    if i == 3:
        pass
    print(i)
# imprimeix: 1 2 3 4 5  (el 3 SÍ s'imprimeix: pass no salta res)

Mira el bucle executar-se pas a pas

Tria una variant i avança pas a pas (o deixa-ho en reproducció automàtica) per veure com evolucionen les variables i la sortida per terminal.

Codi

Variables

NomValor

Terminal

Pas 1 / 1

Exercicis d'autoavaluació

Cada exercici es genera amb valors nous a l'atzar. Llegeix el codi, pensa quina serà la sortida per terminal i comprova-ho.

Quina serà la sortida per terminal d'aquest programa?