I cicli while possono avere condizioni sempre soddisfatte. Questi programmi daranno come risultato un ciclo infinito e continueranno a girare all'infinito. Un buon esempio di questo tipo di programma è while True:
while True:
print('Welcome to an infinite loop!')
Questo programma girerà all'infinito e stamperà Welcome to an infinite loop! finché non verrà interrotto dall'utente.
I cicli while possono essere utilizzati per leggere dati finché una certa condizione non viene soddisfatta. Ad esempio, possiamo leggere i dati dall'input finché l'input non è 0. Non appena l'utente inserisce uno 0 e preme invio, il ciclo while dovrebbe terminare. Questo può essere implementato così:
num = -1
while num != 0:
num = int(input())
print(f'The user entered: {num}')
print('End!')
Questo programma leggerà l'input finché l'utente non inserisce 0, e non appena l'utente inserisce 0, uscirà dal ciclo e stamperà End!.
Possiamo anche leggere num in anticipo e poi avviare il ciclo:
num = int(input())
while num != 0:
print(f'The user entered: {num}')
num = int(input())
print('End!')
In questo modo, il programma non stamperà il 0 finale poiché uscirà dal ciclo prima di quello.
Puoi provare tu stesso a sperimentare con queste due modalità.
Sfida
Scrivi un programma che legge l'input fino a raggiungere la parola End e stampa il testo inserito in output. Non appena il programma raggiunge la parola End dovrebbe fermarsi. Il programma non dovrebbe stampare l'ultima End dall'input.