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 5040La 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).