Cicli while
Il ciclo while: “finché”
Sezione intitolata “Il ciclo while: “finché””Il ciclo while ripete un blocco di codice finché una condizione rimane vera. A differenza del for, non richiede di conoscere in anticipo il numero di iterazioni.
Puoi pensare a una porta che resta aperta finché non si verifica una certa condizione.
while condizione: # codice da ripetereUn primo esempio
Sezione intitolata “Un primo esempio”contatore = 1
while contatore <= 5: print(contatore) contatore += 1 # aumenta il contatore di 1 ogni giroOutput:
12345Il ciclo procede così:
- Python controlla:
contatore <= 5? Sì (1 ≤ 5) → esegue il blocco - Stampa
1, poicontatorediventa2 - Controlla ancora:
2 <= 5? Sì → stampa2,contatorediventa3 - … e così via fino a che
contatorediventa6 6 <= 5? No → il ciclo si ferma
Attenzione al ciclo infinito!
Sezione intitolata “Attenzione al ciclo infinito!”Se la condizione non diventa mai falsa, il ciclo non termina e il programma continua a eseguirlo:
# NON eseguire questo codice!x = 0while x < 10: print(x) # manca x += 1: x non cambia mai, la condizione è sempre vera!Se ti capita accidentalmente, puoi fermare il programma con Ctrl+C nel terminale.
Interrompere con break
Sezione intitolata “Interrompere con break”break ferma subito il ciclo, anche se la condizione è ancora vera. È utile quando la decisione di uscire dipende dal contenuto del ciclo:
while True: # questo ciclo non finirebbe mai da solo... risposta = input("Digita 'esci' per uscire: ") if risposta == "esci": break # ...ma break lo ferma quando l'utente digita "esci"
print("Programma terminato.")Saltare un giro con continue
Sezione intitolata “Saltare un giro con continue”continue salta il resto dell’iterazione e passa al controllo successivo della condizione:
contatore = 0
while contatore < 10: contatore += 1 if contatore % 2 == 0: # se il numero è pari... continue # ...salta la stampa e vai al giro successivo print(contatore) # stampa solo i numeri dispariOutput:
13579Esempi pratici
Sezione intitolata “Esempi pratici”Chiedere un input fino a quando è valido
Sezione intitolata “Chiedere un input fino a quando è valido”Un uso comune di while è ripetere una richiesta finché l’utente non inserisce un valore accettabile.
while True: risposta = input("Inserisci 'sì' o 'no': ") if risposta == "sì" or risposta == "no": break print("Non ho capito, riprova.")
print(f"Hai scelto: {risposta}")Conto alla rovescia
Sezione intitolata “Conto alla rovescia”n = 5
while n > 0: print(n) n -= 1
print("Via!")Output:
54321Via!Quando usare while invece di for?
Sezione intitolata “Quando usare while invece di for?”- Usa
forquando sai già su cosa vuoi iterare (una lista, un range, ecc.) - Usa
whilequando vuoi ripetere qualcosa finché una condizione cambia, senza sapere in anticipo quante volte