Percorso: ilMac.net > Scuola di Mac > Corsi > Programmare con Python


Programmare con Python

13 - While


Alla manutenzione, l'Italia preferisce l'inaugurazione
Leo Longanesi

Questa volta ci occuperemo di un'altra istruzione: while. A cosa serve? Immaginate di dover far compiere al vostro programma un'azione noiosa. D'accordo, potreste fargliela fare comunque, perché i computer adorano compiere azioni ripetitive. Ma poniamo il caso dobbiate creare un semplice programma che chieda una password all'utente. Una volta inserita quella giusta, che stampi a video un messaggio di benvenuto. E' allora evidente anche ai sassi che fino a quando non verrà inserita la giusta password non apparirà mai la finestra di benvenuto. A questo proposito l'istruzione while è proprio ciò di cui abbiamo bisogno. Ecco allora un esempio per mostrare come funziona:



Cosa significa tutto ciò? Semplice: fino a quando (cioé while), non verrà inserita la giusta password, il programma continuerà a richiederla. Una volta che sarà digitata quella giusta, saluterà l'utente con un eloquente 'Benvenuto amico!'. Ecco di seguito l'output che abbiamo ricevuto:



La sintassi è perciò la seguente:

while (condizione):
istruzione1

Anche in questo caso abbiamo i due punti e l'indentazione, un po' come abbiamo visto con l'altra istruzione, cioé if. Ad uno sguardo molto superficiale, l'istruzione while parrebbe strettamente imparentata, se non addirittura simile, proprio a if, che abbiamo conosciuto in una lezione precedente. Ma non è esatto. Infatti while esegue le istruzioni indentate finché non viene restituito il giusto valore.
Ridendo e scherzando, abbiamo iniziato a stringere amicizia con i cicli (o loop), vale a dire delle istruzioni che ripetono più e più volte determinate azioni. Come abbiamo potuto vedere dall'esempio, while torna sistematicamente alla prima istruzione se gli viene passato un valore non vero. E andrà avanti all'infinito finché non gli verrà servito su un piatto d'argento il valore genuino. Ora vediamo un altro piccolo esempio:



Abbiamo in questo caso l'istruzione while che continua a chiedere numeri all'utente, almeno fino a quando costui (cioé voi!), non inserirà il numero 0 (zero). Solo allora il programma restituirà la somma totale dei numeri via via inseriti.

Break, continue, pass

Con while è bene anche accennare ad alcune istruzioni; iniziamo allora con break. Questa istruzione consente di uscire dal ciclo ignorando le istruzione che devono essere ancora eseguite.



Nel nostro esempio, chiediamo ad un ipotetico utente di inserire una serie di nomi di frutti tipici della stagione estiva. Questo programma verrà interrotto solo quando verrà digitato il nome di un frutto esotico come il kiwi. In questo caso il programma terminerà immediatamente; così immediatamente che non procederà neppure alla seconda richiesta (quella cioé di indicare un ortaggio).
L'istruzione continue non fa altro che tornare all'inizio del ciclo che la racchiude:



Come si vede dall'esempio, una volta che viene digitato il termine 'noci di cocco', il programma torna a chiedere un altro nome di frutto, non di un ortaggio (come farebbe se non trovasse sul proprio cammino l'istruzione continue). Per il resto, il suo funzionamento rimarrà inalterato: inserendo 'kiwi' tutto avrà termine.
L'istruzione pass infine indica solo un'istruzione vuota, e non fa assolutamente nulla:

if 10 > 0: pass

Provatelo pure, se lo volete: ma non accadrà proprio nulla. Garantito.

E con questa puntata si conclude questa veloce disamina su Python. Speriamo di essere riusciti a catturare la vostra attenzione. Di essere riusciti a spingervi a curiosare, a provare. Se poi volete saperne davvero di più, sappiate che esiste una comunità Python in Italia:
www.zonapython.it/.
Qui troverete la risposta a molti altri quesiti (compreso un attivo Forum frequentato da molti utilizzatori del Pitone, disponibili a offrire aiuto e consigli).

Data di pubblicazione: 28-11-2005

L'intero contenuto di questo sito è © dal 1998 del Team di ilMac.net, è vietata ogni riproduzione senza il consenso scritto da parte degli autori.