Corso
Il ciclo while è in qualche modo simile a un'istruzione if: esegue il codice al suo interno se la condizione è True. Tuttavia, a differenza dell'istruzione if, il ciclo while continua a eseguire ripetutamente il codice finché la condizione resta True.
Il ciclo while

La sintassi del ciclo while è molto simile a quella dell'istruzione if, come puoi vedere sopra. Il ciclo while non è molto comune, ma in alcuni casi può essere molto utile.
Esempio
Supponiamo che tu stia calcolando numericamente un modello basato sui tuoi dati. In genere questo implica compiere gli stessi passaggi ripetutamente finché l'errore tra il modello e i dati non scende sotto una certa soglia. Quando puoi riformulare il problema come ripetere un'azione finché una condizione è soddisfatta, un ciclo while è spesso la scelta giusta.
Nell'esempio seguente, inizi con un errore pari a 50.0. Poi scriverai un ciclo while: nella condizione scriviamo error > 1, in modo che il ciclo while venga eseguito di nuovo finché l'errore è superiore a 1. All'interno del ciclo while, dividi l'errore per quattro e aggiorni la variabile error. Quando lo eseguiamo la prima volta, otteniamo 12.5.

Python tornerà quindi alla condizione del ciclo while con il nuovo errore pari a 12.5. La condizione sarà di nuovo vera e il codice verrà eseguito.

Python tornerà ancora una volta alla condizione del ciclo while e tenterà di rieseguire il codice. Poiché 3.125 è maggiore di 1, il codice effettua il calcolo.

Infine, la nuova condizione del ciclo while è minore di 1, quindi il codice produce un errore e non verrà eseguito.

Questo esempio tornerà utile perché è arrivato il momento di costruire un ciclo while tu stesso! Andremo a scrivere un while che implementa un semplicissimo sistema di controllo per un pendolo invertito. Se c'è una deviazione rispetto alla posizione perfettamente verticale, il while correggerà gradualmente questa deviazione.
Tieni presente che, se il tuo ciclo while impiega troppo tempo a terminare, potresti aver commesso un errore. In particolare, ricordati di indentare il contenuto del ciclo!
Esempio di errore con ciclo while (esecuzione continua)
Supponi di commentare o rimuovere l'aggiornamento del valore di errore e rieseguire lo script. L'errore non verrà aggiornato e la condizione sarà sempre vera. Il risultato sarà un ciclo while che gira all'infinito.

Se commettessi questo errore sul tuo sistema, dovresti interrompere il programma Python premendo i tasti Control + C.
Esempio
Nell'esempio seguente, creerai la variabile offset con un valore iniziale di 8. Poi scriverai un ciclo while che continua a girare finché offset è diverso da 0.
All'interno del while:
- Stamperai la frase
"correcting...". - Poi ridurrai il valore di
offsetdi 1. Puoi farlo conoffset = offset - 1. - Infine, all'interno del while, stampa
offsetper vedere come cambia.

Quando eseguiamo il programma qui sopra, otteniamo il seguente risultato:
correcting...
7
correcting...
6
correcting...
5
correcting...
4
correcting...
3
correcting...
2
correcting...
1
correcting...
0
Per saperne di più sui cicli while, guarda questo video dal nostro corso Intermediate Python.
Questo contenuto è tratto dal corso Intermediate Python di DataCamp, a cura di Hugo Bowne-Anderson.
Dai un'occhiata anche al nostro tutorial su I cicli in Python e al tutorial Emulare un ciclo Do-While in Python per continuare a imparare e fare pratica con i cicli in Python fino a diventare un esperto.

