next up previous contents
Next: Operatore in Up: Introduzione Previous: Connettivi logici   Indice

Iterazione (while, e for)

Molto di frequente ci troviamo di fronte al fatto di dover eseguire alcune operazioni un "certo" numero di volte. In Python possiamo utilizzare due costrutti while (condizione) e for.

Il ciclo while (condizione): esegue tutte le istruzioni che stanno all'interno del suo blocco (quindi indentate rispetto ad esso), fintantoché la condizione è verificata. Dopo di che il flusso del nostro algoritmo procede dal blocco successivo che deve essere indentato allo stesso livello del while. Un esempio di quanto detto è mostrato nel programma seguente

my_number=3 # number to guess
n=0 # initalize the variable

count=0
while (n != my_number): #(1) while n different from my_number
    n=input('guess my odd number (less than 20) ')
    count = count +1
print "great you guessed it in ",count, "trials"
Come possiamo vedere il ciclo while (n != my_number) viene eseguito all'infinito a meno che n non diventi uguale a my_number.

Il secondo costrutto for, esegue l'iterazione per tutti i membri della lista. Nel capitolo successivo vedremo un pò più di dettagli. Per esempio se vogliamo calcolare il prodotto dei numeri interi che vanno da i a k compresi (con k $>$ i), potremmo utilizzare il seguente frammento di codice

>>> i=2 
>>> k=i+5
>>> print i,k
2 7
>>> prod=1
>>> for n in range(i,k+1,1):
...    prod=prod*n
...    print n
...       
2
3
4
5
6
7
>>> print prod
5040
La funzione range(i,k+1,1) genera la lista di numeri che va da i a k con passo 1 (nell'esempio [2, 3, 4, 5, 6, 7]). Se utilizziamo range(k) avremo la lista di k numeri che vanno da [0, 1, ... k-1]. Implicitamente quindi range(k) coincide con range(0,k,1).



Subsections
next up previous contents
Next: Operatore in Up: Introduzione Previous: Connettivi logici   Indice
2004-11-02