Cicli while
Il ciclo while — “finché”
Section titled “Il ciclo while — “finché””Il ciclo while ripete un blocco di codice finché una condizione rimane vera. È diverso dal for: non sai in anticipo quante volte ripeterà, dipende da cosa succede durante l’esecuzione.
Pensa a un ascensore: le porte rimangono aperte finché non premi il pulsante di un piano. Non sai in anticipo quando lo premeranno.
while condizione: # codice da ripetereUn primo esempio
Section titled “Un primo esempio”contatore = 1
while contatore <= 5: print(contatore) contatore += 1 # aumenta il contatore di 1 ogni giroOutput:
12345Come funziona:
- 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!
Section titled “Attenzione al ciclo infinito!”Se la condizione non diventa mai falsa, il ciclo non finisce mai. Il programma si blocca per sempre:
# 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
Section titled “Interrompere con break”break ferma il ciclo immediatamente, anche se la condizione è ancora vera. È utile quando vuoi uscire dal ciclo in base a qualcosa che succede dentro:
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
Section titled “Saltare un giro con continue”continue salta il resto del codice in questo giro e passa subito al prossimo controllo 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
Section titled “Esempi pratici”Chiedere un input fino a quando è valido
Section titled “Chiedere un input fino a quando è valido”Un uso classico del while: continuare a chiedere all’utente di inserire qualcosa finché 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
Section titled “Conto alla rovescia”n = 5
while n > 0: print(n) n -= 1
print("Via!")Output:
54321Via!Quando usare while invece di for?
Section titled “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