I Cicli FOR e WHILE in Python

Lezione#05 Benvenuti alla quinta lezione del corso Python in 11 passi: sotto esame i Cicli (Loops).
In Python esistono due tipi di cicli (meglio detti loops):
- il ciclo for: esegue un’iterazione per un determinato numero di volte;
- il ciclo while: itera fintanto che una condizione è vera.
Pensiamo al seguente esempio:
# script.py n = 1 print(n) n = n +1 print(n) n = n + 1 print(n)
1
2
3
In questo modo stampiamo una sequenza di numeri, precisamente i numeri da 1 a 3. Se immaginiamo di contare da 1 a 100, diventerebbe noioso e dispendioso scrivere 100 righe di codice sempre uguali. A tal scopo ci vengono in aiuto il ciclo for e il ciclo while.
# script.py while True: print("Hello")
Hello
Hello
Hello
…
Il codice precedente esegue la stampa di Hello un numero indefinito di volte. Il ciclo non si fermerà fintanto che la condizione True è verificata. Facciamo quindi in modo che il ciclo possa ripetersi un numero finito di volte.
# script.py n = 1 while n <= 3: print(n) n = n + 1 # o anche n += 1
1
2
3
Wow! Abbiamo appena usato quella che in gergo si chiama counter variable (o contatore) per controllare il ciclo e farlo girare n volte. Proviamo a scrivere “Hello” giusto tre volte:
# script.py n = 1 while n <= 3: print("Hello") n = n + 1 # o anche n += 1
Hello
Hello
Hello
Ancora una volta n è il nostro contatore: vale 1 all’inizio del ciclo, vale 4 alla fine dello stesso (e pertanto diventa maggiore di 3 e ferma il loop). Vediamo ora come implementare un count down:
# script.py n = 3 while n >= 1: print(n) n = n - 1 # o anche n -= 1
3
2
1
Quest’ultimo è un conto alla rovescia, infatti si parte da 3 e si cicla fintanto che n è maggiore o uguale ad 1.
Ciclo FOR E veniamo al tanto acclamato ciclo for:# script.py for n in range(1,4): print(n)
1
2
3
Benissimo! Il ciclo for si stabilisce in un range di valori: nel caso precedente il range coincide con l’intervallo (1,4). Si noti bene che il primo numero è incluso nel conteggio, il secondo numero non lo è. Mi spiego meglio, il ciclo for ciclerà partendo da 1 fino ad arrivare a 3, ossia (n-1).
Consideriamo un ultimo esempio:
# script.py names = ["Indiana", "Henry", "Marion"] for n in names: print(n)
Indiana
Henry
Marion
Il ciclo for del python è davvero versatile. Nell’ultimo esempio abbiamo considerato una “collezione” di nomi racchiusi in un array. In tal caso non abbiamo usato in range, bensì in names (essendo quest’ultimo un intervallo di stringhe).
Lezione precedente <– []–> Lezione successiva