Articolo originale: https://www.freecodecamp.org/news/python-do-while-loop-example/
I loop rappresentano una funzionalità molto utile e frequentemente usata in tutti i moderni linguaggi di programmazione.
Se vuoi automatizzare un'attività specifica e ripetitiva o evitare di dover scrivere del codice con ripetizioni nei tuoi programmi, usare un loop è l'opzione migliore che ci sia.
I loop sono un insieme di istruzioni che vengono eseguite ripetutamente finché una condizione è verificata. Impariamo di più sul modo in cui funzionano i loop in Python!
Loop in Python
Ci sono due tipi di loop integrati in Python:
- loop
for
- loop
while
Concentriamoci su come creare un loop while
in Python e su come funziona.
Cos'è un loop while
in Python?
La sintassi generica di un loop while
in Python è la seguente:
while condizione:
esegui il codice nel corpo del loop
Un loop while
esegue un pezzo di codice quando la condizione del loop è True
. La porzione di codice con le istruzioni desiderate continua ad essere eseguita finché la condizione non è più True
.
Un loop while
controlla sempre la condizione prima dell'esecuzione.
Se la condizione è valutata come True
, allora viene eseguito il codice presente nel corpo del loop.
Ad esempio, questo loop viene eseguito finché numero
è minore di 10
:
numero = 0
while numero < 10:
print(f"Il numero è {numero}!")
numero = numero + 1
Output:
Il numero è 0!
Il numero è 1!
Il numero è 2!
Il numero è 3!
Il numero è 4!
Il numero è 5!
Il numero è 6!
Il numero è 7!
Il numero è 8!
Il numero è 9!
Qui, la variabile numero
è inizialmente impostata a 0
.
Prima che qualsiasi codice sia eseguito, Python controlla la condizione (numero < 10
). Dato che la condizione è True
, l'istruzione print
è eseguita e Il numero è 0!
viene stampato sulla console.
numero
è incrementato di 1
. La condizione è rivalutata ed è ancora True
, quindi l'intera procedura si ripete finché il valore della variabile numero
è uguale a 9
.
Stavolta Il numero è 9!
viene stampato sulla console e numero
è incrementato, ma adesso numero
è uguale a 10
e la condizione non è più verificata, quindi il loop termina.
È possibile che un loop while
non venga mai eseguito se la condizione non è verificata, come in questo esempio:
numero = 50
while numero < 10 :
print(f"Il numero è {numero}!")
Dato che la condizione è sempre False
, le istruzioni nel corpo del loop non sono mai eseguite.
Non creare loop infiniti
Come hai visto nell'esempio qui sopra, i loop while
sono tipicamente accompagnati da una variabile, il cui valore cambia durante la durata del loop e, alla fine, determina quando il loop finisce.
Se non aggiungi questa riga di codice, creerai un loop infinito.
Il valore di numero
non sarà incrementato e aggiornato, restando sempre 0
e, di conseguenza, la condizione numero < 10
sarà sempre True
. Ciò significa che il loop continuerà a iterare per sempre.
# non eseguire questo loop
numero = 0
while numero < 10:
print(f"Il numero è {numero}!")
Output:
Il numero è 0!
Il numero è 0!
Il numero è 0!
Il numero è 0!
Il numero è 0!
Il numero è 0!
Il numero è 0!
...
Viene eseguito indefinitamente.
È equivalente a:
# non eseguire questo loop
while True:
print("Sono sempre vero")
E se ti dovessi trovare in una situazione come questa?
Premi Ctrl
+ C
per terminare l'esecuzione del loop.
Cos'è un loop do
while
?
La sintassi generica di un loop do
while
in altri linguaggi di programmazione è:
do {
blocco di istruzioni del loop da eseguire;
}
while(condizione);
Ad esempio, un loop do
while
in C:
#include <stdio.h>
int main(void)
{
int i = 10;
do {
printf("il valore di i: %i\n", i);
i++;
}
while( i < 20 );
}
Per i loop do
while
, è singolare il fatto che il codice nel blocco del loop viene eseguito almeno una volta.
Il codice viene eseguito una volta e la condizione è controllata soltanto dopo l'esecuzione.
Quindi il codice viene prima eseguito e poi la condizione viene controllata.
Se la condizione è verificata, il loop continua.
Ci sono dei casi in cui è necessario eseguire del codice almeno una volta, ed è qui che i loop do
while
si rivelano utili.
Ad esempio, se stai scrivendo un programma che prende un input dagli utenti, potresti chiedere solo un numero positivo. Il codice viene eseguito almeno una volta. Se il numero inserito dall'utente è negativo, il loop sarà eseguito di nuovo. Se è positivo terminerà.
Python non ha una funzionalità integrata per creare esplicitamente un loop do
while
come gli altri linguaggi, ma è possibile mimarne uno.
Come emulare un loop do
while
in Python
Per creare un loop do
while
in Python, hai bisogno di modificare leggermente il loop while
, così da poter ottenere il comportamento di un loop do
while
in altri linguaggi.
Come abbiamo già detto, un loop do
while
viene eseguito almeno una volta. Se la condizione è verificata, viene eseguito di nuovo.
Il loop while
, d'altro canto, può non essere mai eseguito, perché viene eseguito soltanto quando la condizione è verificata.
Quindi, vediamo un esempio in cui una riga di codice viene eseguita almeno una volta:
parola_segreta = "python"
counter = 0
while True:
parola = input("Inserisci la parola segreta: ").lower()
counter = counter + 1
if parola == parola_segreta:
break
if parola != parola_segreta and counter > 7:
break
Il codice sarà eseguito almeno una volta, chiedendo l'input all'utente.
Con True
è sempre garantita l'esecuzione almeno una volta, altrimenti si crea un loop infinito.
Se l'input dell'utente è la parola segreta corretta, il loop termina.
Se l'utente inserisce la parola segreta errata per più di 7 volte, il loop termina.
L'istruzione break
ti permette di controllare il flusso di un loop while
e non incappare in un loop infinito.
break
termina immediatamente l'iterazione corrente e esce dal loop.
In questo modo puoi creare un effetto simile a un loop do while
in Python.
Il loop sarà sempre eseguito almeno una volta. Continuerà a iterare se la condizione non è raggiunta e terminerà quando la condizione è verificata.
Conclusione
Adesso sai come creare un loop do while
in Python.
Se sei interessato a imparare di più su Python, segui il corso gratuito di freeCodeCamp Calcolo scientifico con Python per avere una panoramica a tuttotondo sugli aspetti fondamentali del linguaggio.
Alla fine del corso dovrai realizzare cinque progetti di pratica su ciò che hai imparato per ottenere la certificazione.
Grazie per aver letto questo articolo e buono studio!