| Per començar | Elements d'entrada | Programació CircuitPython | Recursos CITCEA | |
| Elements no electrònics | Elements de sortida | Programació Arduino | ||
| Projectes | Elements de control | Dades pràctiques | Inici | 
Les estructures algorítmiques de repetició ens permeten fer coses que es repeteixen un nombre (determinat o no) de cops. L'estructura genèrica és la while però també tenim els bucles for.
L'estructura while repeteix un conjunt d'instruccions un nombre indefinit de vegades, mentre no es cumpleix la condició establerta. La forma de l'estructura while és la següent:
    while condicio:
        # Instruccions que es fan tants cops com es repeteix el bucle
    # Instruccions que es fan quan acaba el bucle
Per exemple:
    i = 0
    while i < 4:
        print(i)
        i = i + 1
    print("Ja hem arribat a 4")
Aquest bucle imprimira els valors del 0 al 3 i després la frase final.
A vegades tenim un while que ha d'esperar, sense fer res, que es cumpleixi una condició. Atès que l bucle no pot estar buit, cal posar-li alguna instrucció a dins. La instrucció pass és molt útil en aquests cassos ja que no fa absolutament res però ja no tenim el bucle buit. Per exemple:
while not i2c.try_lock():
    pass
es quedarà bloquejat fins que try_lock() doni True.
L'estructura for fa bucle en el que una variable es va incrementant a cada iteració. Cal donar el valor inicial, l'increment i el valor final. El bucle s'aturarà just abans d'assolir el valor final. La forma de l'estructura for és la següent:
    for variable in range(inicial, final, increment):
        # Instruccions que es fan tants cops com es repeteix el bucle
    # Instruccions que es fan quan acaba el bucle
Per exemple:
    for val in range(0, 99, 5):
        ledvar.value = val
        time.sleep(0.005)
    print("Ja hem arribat!")
Aquest bucle es repetirà vint cops. En el primer val serà 0, en el segon serà 5, en el tercer 10 i així successivament fins al darrer en el que valdrà 95. Es parà a 95 perquè si sumés 5 més es passaria del límit (99).
L'increment pot ser negatiu:
    for k in range(9, 0, -1):
        print(k)
        time.sleep(0.1)
    print("Ja hem arribat!")
En aquest cas el bucle es farà nou cops. En el primer k valdrà 9 i en el darrer valdrà 1.
Quan l'increment és 1 no cal posar-lo:
    for val in range(1, 10):
        ledvar.value = val
        time.sleep(0.005)
    print("Ja hem arribat!")
Tampoc cal posar el valor inicial si és zero:
    for val in range(10):
        ledvar.value = val  # Des de 0 fins a 9
        time.sleep(0.005)
    print("Ja hem arribat!")
Una altra opció dels bucles for és recórrer els elements d'un tuple. Per exemple:
    for f in (262, 294, 330, 349, 392, 440, 494, 523):
        piezo.frequency = f
En aquest cas f prendra, successivament, els vuit valors del tuple.
En aquest web, les fotografies marcades amb [AF] són del web d'Adafruit, les marcades amb [SF] del web d'Sparkfun i les marcades amb [AU] del web d'Arduino.

Aquesta obra d'Oriol Boix està llicenciada sota una llicència no importada Reconeixement-NoComercial-SenseObraDerivada 3.0.