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
| Nom | Valor |
|---|
Terminal
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?