L'istruzione while ( python )

Per creare un ciclo condizionato in Python utilizzo l'istruzione while

while [ condizione ]:
blocco istruzioni

L'istruzione esegue il blocco di codice indentato finché la condizione della while è vera.

Il loop termina quando la condizione diventa falsa.

Cos'è l'indentazione? Il linguaggio Python non utilizza le parentesi per raggruppare un blocco di codice. E' sufficiente spostarlo in una posizione più interna, verso destra, rispetto alla struttura while. Questa tecnica è detta indentazione significativa.

E' importante non dimenticarsi il simbolo dei due punti : dopo la condizione della while. A me capita spesso.

Un esempio pratico

Questo script stampa i numeri da 1 a 4

  1. x=1
  2. while x<5:
  3. print(x)
  4. x+=1
  5. print("fine")

E' bene sottolineare che il blocco di codice della struttura è composto soltanto dalle linee 3 e 4. Queste istruzioni sono spostate più a destra rispetto alla while.

La linea 5 è invece al di fuori della struttura while, perché si trova alla stessa posizione della while. Quindi, non è indentata.

L'output del programma è il seguente:

1
2
3
4
fine

La differenza tra while e for

Entrambe le strutture WHILE e FOR mi permettono di sviluppare un ciclo.

Ci sono però due importanti differenze:

  1. La struttura while utilizza una variabile contatore per contare le iterazioni mentre la for itera un oggetto.
  2. La struttura while crea un ciclo indeterminato, perché il numero delle iterazioni non si conosce a priori, mentre la for è un ciclo determinato.

Le interruzioni del ciclo

Nella struttura iterativa while posso utilizzare le istruzioni di interruzione forzata break e continue:

  • break interrompe ed esce dal ciclo, il controllo passa alla prima istruzione dopo la struttura iterativa.
  • continue interrompe l'iterazione corrente senza uscire dal ciclo, il controllo passa alla successiva iterazione.

Esempio 1 ( break )

Alla seconda iterazione (x=3) l'istruzione break esce dal ciclo.

  1. x=0
  2. while x<6:
  3. x+=1
  4. if (x==3): break
  5. print(x)
  6. print("fine")

L'output è il seguente:

1
2
fine

Il ciclo while termina anticipatamente alla terza iterazione.

Esempio 2 ( continue )

Alla seconda iterazione (x=3) l'istruzione continue interrompe l'esecuzione del codice e passa al ciclo successivo (x=4).

  1. x=0
  2. while x<6:
  3. x+=1
  4. if (x==3): continue
  5. print(x)
  6. print("fine")

L'output è il seguente:

1
2
4
5
6
fine

In questo caso manca soltanto la terza iterazione.

E così via.

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

Le strutture cicliche in Python

Le interruzioni forzate