Le istruzioni iterative in Python
Le strutture iterative nel linguaggio python sono realizzabili con le istruzioni while e for. Queste istruzioni mi permettono di programmare l'esecuzione di un blocco di istruzioni in cicli con iterazioni condizionate o incondizionate.
L'istruzione while
L'istruzione while mi permette di creare un ciclo condizionato a un evento.
while [ condizione ] :
blocco istruzioni
Nel python il blocco di istruzioni non è delimitato da parentesi perché utilizza l'indentatura, ossia la presenza degli spazi in bianco lasciati prima delle istruzioni.
E' importante non dimenticarsi di digitare i due punti ( : ) immediatamente dopo l'espressione condizionale.
Un esempio pratico
Nel seguente codice chiedo all'utente di digitare un numero in input.
n=0
while n<10:
n=int(input('digita un numero maggiore o uguale a 10 '))
Se il numero è inferiore a 10, il programma chiede nuovamente all'utente di digitare un altro numero.
Una possibile iterazione input/output sullo schermo è la seguente:
digita un numero maggiore o uguale a 10 4
digita un numero maggiore o uguale a 10 7
digita un numero maggiore o uguale a 10 11
Nella prima e seconda iterazione ho digitato 4 e 7. Il ciclo si ripete perché sono numeri inferiori a 10.
Nella terza iterazione ho digitato 11 facendo venire meno la condizione dell'iterazione.
Nota. Secondo me, è consigliabile abituarsi a utilizzare l'istruzione While nella programmazione in Python, perché è universale e consente di realizzare sia cicli condizionati che incondizionati. Ecco un esempio pratico di ciclo incondizionato realizzato con l'istruzione while.
L'istruzione for
L'istruzione for crea un ciclo incondizionato.
for [oggetto]:
blocco istruzioni
Nel linguaggio python l'istruzione for legge tutti gli elementi di un oggetto ( es. lista, tupla, ecc. ).
Per ogni elemento dell'oggetto l'istruzione for esegue un blocco di istruzioni.
Nota. Il blocco delle istruzioni non è delimitato da parentesi bensì dall'indentatura ossia dallo spazio in bianco lasciato all'inizio della riga per posizionarle dentro la struttura ciclica. Inoltre, bisogna ricordarsi di inserire il simbolo dei due punti (:) prima del blocco di istruzioni.
Spesso l'istruzione for è associata alla funzione range che crea un oggetto composto da N elementi.
Un esempio pratico
In questo codice visualizzo sullo schermo i numero da 1 a 9.
for i in range(1,10):
print(i)
La funzione range(1,10) crea un oggetto composto da nove elementi da 1 (incluso) a 10 (escluso).
L'istruzione for legge ogni elemento dell'oggetto ed esegue ogni volta il blocco delle istruzioni.
Dopo ogni ciclo l'istruzione incremente la variabile i.
Il risultato in output è il seguente:
1
2
3
4
5
6
7
8
9
Il ciclo si ripete per 9 volte e non è condizionato al verificarsi di un evento aleatorio.
Al decimo ciclo il programma esce dalla struttura iterativa e prosegue l'esecuzione delle istruzioni successive.
Break e continue
Nelle strutture iterative for e while del linguaggio python posso utilizzare due istruzioni di interruzione.
Break
L'istruzione break interrompe il ciclo.
L'esecuzione passa alla prima istruzione al di fuori del ciclo.
Un esempio pratico
for i in range(1,5):
if i==3: break
print(i)
L'output del programma è il seguente
1
2
Alla terza iterazione il ciclo si conclude con l'istruzione break.
Continue
L'istruzione continue interrompe l'iterazione corrente.
L'esecuzione passa all'iterazione successiva del ciclo.
Un esempio pratico
for i in range(1,5):
if i==3: continue
print(i)
L'output del programma è il seguente
1
2
4
Alla terza iterazione il ciclo salta all'iterazione successiva con l'istruzione continue.