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 se a e b sono uguali.
  • a != b - Vero se a e b non sono uguali.
  • a > b - Vero se a è maggiore di b.
  • a >= b - Vero se a è uguale o maggiore di b.
  • a < b - Vero se a è inferiore a b.
  • a <= b - Vero se a è uguale o inferiore a b.

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.