Python costrutto While

Autore:[Antonio Gallonetto]

While

Il costrutto while esegue un blocco di codice finchè è verificata una certa condizione.

Sintassi del costrutto While

## eventuale inizializzazione della condizione
while condizione:
    Blocco codice da eseguire

Esempio di While

Conta i caratteri della stringa e se è diversa da 16 stampa che non può essere un codice fiscale.

my_string = input("Inserisci il tuo codice fiscale: ")
dim_str=len(my_string)
counter=1
while counter<dim_str:
    counter=counter+1
print("Dimensione della stringa: "+str(counter))
if counter==16:
    print("Dimensione del codice fiscale corretto")
else :
    print("Dimensione del codice errata")    

Notare la dimensione < perchè il contatore avrà già conteggiato un ciclo prima che la condizione diventi falsa.

Break all’interno del ciclo While

break interrompe il ciclo

Esempio di break all’interno del ciclo While

Se la dimensione della stringa è maggiore della dimensione standard del codice fiscale esce subito dal ciclo.

my_string = input("Inserisci il tuo codice fiscale: ")
dim_str=len(my_string)
counter=0
DIM_CF=16
while counter<=(dim_str-1):
    if dim_str>DIM_CF: break
    print(my_string[counter])
    counter=counter+1
if counter==DIM_CF:
    print("Dimensione del codice fiscale corretto")
else :
    print("Dimensione del codice errata")    

Continue all’interno del ciclo While

continue passa al ciclo successivo

Esempio di Continue all’interno del ciclo While

Questo esempio stampa solo i caratteri, usando il continue, quando trova un numero salta al ciclo successivo e non stampa il carattere numerico.

my_string = input("Inserisci il tuo codice fiscale: ")
dim_str=len(my_string)
counter=0
DIM_CF=16
while counter<=(dim_str-1):
    if dim_str>DIM_CF: break
    if my_string[counter].isdigit():
        counter=counter+1
        continue ## stampa solo i caratteri
    print(my_string[counter])
    counter=counter+1
if counter==DIM_CF:
    print("Dimensione del codice fiscale corretto")
else :
    print("Dimensione del codice errata")