Introduzione
I loop sono uno dei concetti fondamentali dei linguaggi di programmazione. I loop sono utili quando si desidera ripetere un determinato blocco di codice un numero di volte fino a quando non viene soddisfatta una determinata condizione.
Esistono due costrutti di loop di base in Python for
e while
loop.
Questo tutorial illustra le basi dei loop while
in Python. Ti mostreremo anche come utilizzare la clausola else
e le dichiarazioni break
e continue
.
Python While Loop
Il ciclo while
esegue le sue istruzioni un numero sconosciuto di volte fino a quando la condizione data viene valutata true
.
Il ciclo while
Python ha la forma seguente:
while EXPRESSION:
STATEMENT(S)
L'istruzione while
inizia con la parola chiave while
, seguita dall'espressione condizionale.
Il parametro EXPRESSION
viene valutato prima di eseguire le istruzioni. Se la condizione restituisce true
, STATEMENT(S)
vengono eseguiti. Altrimenti, se la condizione viene valutata false
, il ciclo viene terminato e il controllo del programma viene passato all'istruzione che segue.
Il blocco STATEMENT(S)
inizia con un rientro e termina con la prima riga non rientrata. La maggior parte delle persone sceglie di utilizzare il rientro a 4 o 2 spazi. La Guida di stile ufficiale per Python Code raccomanda di usare 4 spazi per livello di rientro ed evitare di mescolare l'uso di tabulazioni e spazi per il rientro.
Diamo un'occhiata al seguente codice di esempio che incrementa e stampa il valore corrente della variabile i
purché sia inferiore a cinque:
i=0
while i < 5:
i += 1
print('number:', i)
Il ciclo di ripetizione continua finché i
è inferiore o uguale a cinque. Produrrà il seguente output:
number: 1
number: 2
number: 3
number: 4
number: 5
Python supporta operazioni di confronto standard:
a == b
- Vero sea
eb
sono uguali.a != b
- Vero sea
eb
non sono uguali.a > b
- Vero sea
è maggiore dib
.a >= b
- Vero sea
è uguale o maggiore dib
.a < b
- Vero sea
è inferiore ab
.a <= b
- Vero sea
è uguale o inferiore ab
.
Per negare l'espressione condizionale, utilizzare l'operatore logico not
:
i=0
while not i >= 5:
i += 1
print('number:', i)
Dichiarazioni break e continue
Le istruzioni break
e continue
consentono di controllare l'esecuzione del loop while
.
L'istruzione break
termina il ciclo corrente e passa il controllo del programma all'istruzione che segue il ciclo terminato. La situazione più comune è utilizzare break
per terminare il loop quando viene soddisfatta una determinata condizione.
Nel seguente esempio, l'esecuzione del ciclo viene interrotta quando l'elemento iterato corrente è uguale a 2
.
i=0
while i < 5:
i += 1
if i == 2:
break
print('number:', i)
Number: 1
L'istruzione continue
esce dall'iterazione corrente di un ciclo e passa il controllo del programma alla successiva iterazione del ciclo.
Nell'esempio successivo, una volta che l'attuale oggetto iterato è uguale 2
l'istruzione continue
causerà il ritorno all'inizio del ciclo continuerà con la prossima iterazione.
i=0
while i < 5:
i += 1
if i == 2:
continue
print('number:', i)
number: 1
number: 3
number: 4
number: 5
Clausola else
A differenza di altri linguaggi, in Python, il loop while
ha una clausola else
opzionale:
while EXPRESSION:
STATEMENT(S)
else:
STATEMENT(S)
Le istruzioni all'interno della clausola else
vengono eseguite solo quando viene valutato EXPRESSION
come false
. Se viene sollevata un'eccezione o se il ciclo termina con l'istruzione break
, non verrà eseguito.
Ecco un esempio:
i=0
while i < 5:
i += 1
print('number:', i)
else:
print('Loop completed.')
number: 1
number: 2
number: 3
number: 4
number: 5
Loop completed.
Vediamo cosa succede quando si utilizza l'istruzione break
per uscire dal circuito::
i=0
while i < 5:
i += 1
if i == 2:
break
print('number:', i)
else:
print('Loop completed.')
L'istruzione all'interno della clausola else
non viene eseguita perché l'espressione non ha valutato false
:
Number: 1
La clausola else
con un loop while
non viene spesso utilizzata. Una situazione comune è quando si prevede di interrompere un ciclo e se il ciclo continua a funzionare fino alla valutazione della condizione false
, è possibile eseguire alcune istruzioni o funzioni.
Loop While infinito
Un ciclo infinito è un ciclo che si ripete indefinitamente e non termina mai fino al termine del programma. Se la condizione restituisce sempre true, si ottiene un ciclo infinito.
I cicli infiniti vengono generalmente utilizzati per far attendere al programma che si verifichi un evento esterno. In genere, in Python, viene creato un ciclo infinito con while True:
Invece di True
, puoi anche usare qualsiasi altra espressione che ritorni sempre true
.
Ecco un esempio di un ciclo infinito while
che continuerà a chiederti di inserire "Si":
while True:
i = input('Please enter \'Si\': ')
if i.strip() == 'Si':
break
Il loop while
funzionerà finché non inserisci "Si":
Please enter 'Si': 3
Please enter 'Si': l
Please enter 'Si': 3
Please enter 'Si': No
Please enter 'Si': Si
Un altro modo per terminare un ciclo infinito è premere CTRL+C
.
Quando si scrivono loop infiniti, assicurarsi di utilizzare l'istruzione break
per uscire dal loop a un certo punto.
Conclusione
Il loop while
esegue ripetutamente le sue istruzioni fintanto che la condizione data viene valutata true
.