Estratto del documento

Cicli in Python e JES: for, while, break e continue

Fondamenti di Informatica · Python / Jython (JES)

Questi appunti trattano l'iterazione, cioè la ripetizione di un gruppo di istruzioni. Gli esempi sono scritti per JES

(Jython Environment for Students), che esegue Python 2.7 su Java, e funzionano anche in Python 3; le differenze tra le

due versioni sono segnalate. Tutti gli esempi sono stati eseguiti.

1. Perché servono i cicli

Molti problemi richiedono di ripetere la stessa operazione su tanti dati: sommare tutti gli elementi di una lista, contare

le vocali di una parola, modificare ognuno dei pixel di un'immagine (che possono essere centinaia di migliaia). Scrivere

un'istruzione per ogni dato è impossibile, anche perché il numero di dati di solito non è noto quando si scrive il

programma. Un ciclo (o loop) esegue ripetutamente un blocco di istruzioni, detto corpo del ciclo. Python offre due cicli:

e .

for while

2. Il ciclo for

Il ciclo scorre una sequenza: a ogni ripetizione (detta iterazione) la variabile di ciclo assume il valore

for

dell'elemento successivo, e il corpo viene eseguito con quel valore. Il ciclo termina quando gli elementi sono finiti.

for variabile in sequenza:

corpo

Come per , sono obbligatori i due punti e l'indentazione del corpo.

if

>>> for frutto in ["mela", "pera", "kiwi"]:

... print(frutto)

...

mela

pera

kiwi

>>> for c in "ciao":

... print(c.upper())

...

C

I

A

O

La sequenza può essere una lista, una stringa, una tupla o il risultato di . Il è il ciclo da preferire quando si

range for

conosce in anticipo su quali elementi lavorare.

3. La funzione range

genera una sequenza di interi ed è il modo standard per ripetere un'azione un numero fissato di volte o per

range

scorrere gli indici di una lista. Ha tre forme:

: da 0 a (quindi numeri);

range(n) n - 1 n

: da incluso a escluso;

range(inizio, fine) inizio fine

: con incremento , che può essere negativo per contare all'indietro.

range(inizio, fine, passo) passo

1

>>> list(range(5))

[0, 1, 2, 3, 4]

>>> list(range(2, 6))

[2, 3, 4, 5]

>>> list(range(0, 20, 5))

[0, 5, 10, 15]

>>> list(range(5, 0, -1))

[5, 4, 3, 2, 1]

range in JES e in Python 3

In JES (Python 2) restituisce direttamente la lista . In Python 3 restituisce un oggetto

range(5) [0, 1, 2, 3, 4]

che produce i numeri uno alla volta; per vederli tutti si scrive . Nel ciclo le due

range list(range(5)) for

versioni si comportano nello stesso modo.

Scorrere

Anteprima
Vedrai una selezione di 3 pagine su 6
Cicli for e while Pag. 1 Cicli for e while Pag. 2
Anteprima di 3 pagg. su 6.
Scarica il documento per vederlo tutto.
Cicli for e while Pag. 6
1 su 6
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher davidescri di informazioni apprese con la frequenza delle lezioni di Fondamenti di informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Roma Tor Vergata o del prof Regoli Massimo.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community