Ciclo iterativo For – Corso Python per Principianti – Lezione 13

3

Un altro ciclo iterativo, oltre il while, di fondamentale importanza è senza dubbio il for.

Il for è un ciclo iterativo molto utilizzato nei vari linguaggi di programmazione, vediamo a cosa serve e come utilizzarlo su Python.

Il ciclo for è utilissimo per poter analizzare gli elementi di una lista, uno ad uno, e fare le dovute operazioni.
Ma andiamo a vedere nel dettaglio con, come al solito, diversi esempi che ti faranno comprendere meglio l’argomento.

La sintassi in Python del ciclo for è la seguente:

for variabile in lista:

#elabora su variabile

Chiamiamo, per semplicità, elem=variabile e AL=lista;

AL viene analizzata dal suo primo elemento fino all’ultimo, un elemento alla volta per ogni passo del for.

Per intenderci, supponiamo di avere questo codice:

AL=[5,10,15,20,25]
cont=0
for elem in AL:

print(elem,“-passo numero “,cont)

cont+=1

L’output di questo programma sarà:

5-passo numero 0
10-passo numero 1
15-passo numero 2
20-passo numero 3
25-passo numero 4

Adesso lascio a te un facile esercizio che devi fare utilizzando un ciclo for.
Esercizio: Crea un metodo  somma_di_elementi(lista_di_interi) che riceve una lista di interi e ritorna la somma degli elementi. Per esempio se hai somma_di_elementi([3,2,5]) il metodo dovrà ritornare 3+2+5=10.

Ma non è finita qui… questa è una prima modalità del for di Python, adesso viene il bello!

Un’altro buon motivo per utilizzare il ciclo for è per ripetere la stessa azione un determinato numero di volte.

Per fare ciò devi utilizzare il ‘range’.

La funzione range di Python permette di generare una lista di numeri da 0 ad un valore intero ‘n’ da te scelto, per poter ripetere il ciclo ‘n’ volte.

range(n)

for i in range(3):

print(i)

Questo programma stamperà:
0
1
2

Come funziona? Lo puoi capire benissimo dall’esempio!
Appena si incontra un ciclo for la i diventa uguale a 0 e si esegue le operazioni presenti nel corpo.
Al termine del corpo del for si risale sopra e si controlla se si può andare avanti, in questo caso si e allora i=1.
Stesso ragionamento allora i=2.
Ma perché appena i deve diventare 3 il ciclo si interrompe?

La funzione range(n) parte da 0 ed arriva ad n-1, quindi l’ultimo valore va sempre escluso.

range(m,n)

for i in range(10,13):

print(i)

Stamperà:

10
11
12

Quindi adesso hai una possibilità in più… potrai creare un ciclo for che, con una funzione range(m,n) cicla da m ad n-1, l’ultimo elemento va sempre escluso.

range(m,n,passo)

for i in range(0,10,2):

print(i)

Stamperà:

0
2
4
6
8

Il terzo elemento nella funzione range determina il passo, di quanto deve incrementare ogni volta. Normalmente il passo è 1 poiché si aumenta sempre di 1… (m,n,1), ti trovi con questa dicitura? Mi raccomando se non capisci qualcosa lascia un commento e ti chiariremo ogni tuo dubbio.

Adesso siamo noi stessi a determinare il passo, nell’esempio precedente il passo=2, quindi se prima i=0, successivamente anziché diventare uguale ad 1, diventa uguale a 2 e cosi via per il 4,6,8.

Con quest’ultima funzione puoi sbizzarrirti a fare cicli che anziché incrementare la i la decrementano e tante altre cose simpatiche. Ma adesso ciò che ti serve è conoscere queste 3 funzioni principali del range e farne uso in modo adeguato in base al problema che devi risolvere.

L’istruzione break funziona anche con il for?

Ti ricordi l’istruzione break che ti ho spiegato nella lezione precedente sul ciclo while?

Questa istruzione puoi usarla anche nei cicli for per bloccare prematuramente un ciclo.

Come hai potuto notare tu stesso sia il while che il for sono 2 strutture in grado di compiere le medesime operazioni.

Ma allora perché te le ho spiegate entrambe?

E’ bene che un buon programmatore conosca la gran parte della sintassi del linguaggio di programmazione di Python, adesso sta a te scegliere se usare il ciclo for o il ciclo while, te ne renderai conto con il tempo a furia di programmare e risolvere tanti problemi.

Adesso, come di consueto ti lascio un esercizio che ti consiglio di fare prima di passare alla lezione successiva:

Esercizio: scrivi un metodo numeri_primi(lista_di_interi) che riceve una lista di interi e restituisce True se c’è almeno 1 elemento primo, false se tutti gli elementi non sono primi.
PS. se fai un for i in range(len(A)) potrai ripetere l’operazione tante volte quanti sono gli elementi presenti nella lista A. Quindi se nella lista hai 3 elementi, il ciclo, tranne imprevisti (istruzione break), verrà ripetuto 3 volte con i=0, i=1, i=2… quindi facendo A[i]potrai accedere ad ogni elemento della lista.
PPS. Puoi usare l’operatore modulo %. (NB: se hai A%B, % è l’operatore modulo, restituisce il resto della divisione tra A e B).

Come indizio ti direi di fare una funzione ePrimo(num_intero) e per ogni elemento presente nella lista di interi passata nel metodo numeri_primi richiamare la funzione ePrimo.

L’esercizio non è proprio banale ma sicuramente se riuscirai a risolverlo sei a buon punto… se intoppi in qualcosa ti aiutiamo noi. 🙂

C’è qualcosa che non è molto chiara? Lascia un commento, sono a tua completa disposizione.

Sei soddisfatto/a di questa lezione ed hai imparato nuove cose? Ringraziaci con un +1,  per te è solo un click, per noi è molto importante, grazie ancora. 🙂

Lezione 12: Ciclo iterativo While <—> Lezione 14: Esercizi di riepilogo

Lascia una reazione al nostro articolo! 🙂

Dall’età di 14 anni coltivo la passione per la tecnologia. Mi interessano argomenti quali WEB Marketing, Copywriting & SEO. Appassionato Apple, sempre informato sulle ultime novità iOS e OSX e sempre pronto a risolvere i problemi degli utenti della mela.

Share This

Grazie per aver letto il nostro articolo!

Condividilo per supportarci, grazie infinite!