Ecco qui finalmente la nostra prima struttura di controllo. Solitamente il
computer legge il nostro programma cominciando dalla prima linea per poi
scendere da lì fino alla fine del codice. Le strutture di controllo influiscono
sul programma cambiando l'ordine d'esecuzione dei comandi o decidendo se un
determinato comando verrà eseguito o meno. A voi il sorgente di un primo
esempio che utilizza la struttura di controllo 'while':
Quindi il risultato dell'esecuzione:
a = 0
while a < 10:
a = a + 1
print a
Cosa fa il programma? Prima di tutto vede la linea
'a = 0' e assegna il valore
zero alla variabile numerica a.
Dopodiché vede il comando
'while a < 10:' che
ordina a Python di controllare se la variabile
a è minore di 10: in questo caso
a corrisponde al valore zero quindi
è minore di 10, per questo motivo Python
eseguirà tutte le istruzioni rientrate sotto la struttura
'while'. In poche
parole finché la variabile numerica a
è minore di dieci Python esegue tutte le
istruzioni tabulate sotto while.1
2
3
4
5
6
7
8
9
10
Ecco un'altro esempio dell'uso di while:
Appena eseguito questo script l'output è stato questo:
a = 1
s = 0
print 'Enter Numbers to add to the sum.'
print 'Enter 0 to quit.'
while a != 0
print 'Current Sum:',s
a = input('Number? ')
s = s + a
print 'Total Sum =',s
Ho dimenticato il ':' dopo il while. Python avverte dell'errore e mostra
all'utente dov'è il problema segnando la linea di codice incriminata con un
utile ^. Dopo aver risolto il problema grazie
all'aiuto di Python il programma
funziona a meraviglia ed ecco finalmente il risultato:
File "sum.py", line 3
while a != 0
^
SyntaxError: invalid syntax
Come puoi vedere 'print 'Total sum =', s'
è eseguito solamente alla fine: questo
perché la struttura di controllo 'while'
influisce solamente sulle istruzioni
tabulate (rientrate, indentate). Il simbolo
!= significa diverso:
finché a è
diverso da zero esegui le istruzioni tabulate sotto
while.
Enter Numbers to add to the sum.
Enter 0 to quit.
Current Sum: 0
Number? 200
Current Sum: 200
Number? -15.25
Current Sum: 184.75
Number? -151.85
Current Sum: 32.9
Number? 10.00
Current Sum: 42.9
Number? 0
Total Sum = 42.9
Ora che abbiamo capito la struttura di controllo
'while' possiamo programmare
uno script che venga eseguito all'infinito. Una via molto
facile per farlo è ad esempio questa:
L'output di questo programma sarà una continua
ripetizione della frase
'Help, I'm stuck in a loop !!! '
all'infinito, a meno che non lo fermiate premendo i
tasti 'Ctrl' e
'C' contemporaneamente. Questo
manderà un segnale di terminazione al programma.
while 1 == 1:
print "Help, I'm stuck in a loop."
(Nota: a volte dovrete premere Invio oltre a 'Ctrl+c')