Cicli for annidati in python

In questa lezione impareremo ad utilizzare i cicli for annidati in python, ovvero le iterazioni eseguite dentro altre iterazioni.

Facciamo dunque degli esempi per capire il loro funzionamento.

Esempio sui cicli for annidati in python

Produrre un rettangolo di 4 asterischi come base e 3 per altezza.

L’output dovrà essere dunque questo:

* * * *
* * * *
* * * *

Per realizzare ciò usiamo due cicli, uno esterno ed uno interno.

Due cicli for annidati richiedono contatori diversi, indichiamo con i il contatore del primo ciclo, mentre con j il contatore del secondo ciclo.

Quindi, in questo caso, il ciclo esterno verrà ripetuto tre volte, mentre quello interno quattro volte per ogni ciclo esterno.

Ecco di seguito il codice completo:

for i in range(3):

for j in range(4):

print(‘*’, end=‘ ‘)

print()

Utilizziamo la keyword end all’interno del print per inserire gli asterischi sulla stessa riga e dunque evitare di andare a capo.

Mentre l’ultimo print() serve semplicemente per andare a capo, dopo aver stampato ciascuna riga.

Spieghiamo dunque passo passo cosa succede:

Prima iterazione del ciclo esterno: i=0

Prima iterazione del ciclo interno: j=0  stampa l’asterisco seguito dallo spazio vuoto.

Seconda iterazione del ciclo interno: j=1  stampa un altro asterisco seguito dallo spazio vuoto.

Terza iterazione del ciclo interno: j=2  stampa un asterisco seguito dallo spazio vuoto.

Quarta iterazione del ciclo interno: j=3  stampa un asterisco seguito dallo spazio vuoto.

Seconda iterazione del ciclo esterno: i=1

Si procede analogamente a quanto detto prima.

Per provare quanto spiagato provate a sostituire gli asterischi ai valori di i e j, inserendo al posto di print(‘*’, end=’ ‘) il codice indicato sotto:

print(‘i:’,i,‘j:’,j, end=‘ ‘)

Ma attenzione! Lo stesso rettangolo si poteva con un solo ciclo for, semplicemente moltiplicando il carattere asterisco (*) 4 volte per ogni riga.

for i in range(3):

print(‘* ‘*4)


Secondo esempio sui cicli for

Variamo l’esercizio precedente producendo adesso un rettangolo con i numeri da 1 a 4.

Cioè l’output deve essere questo:

1 2 3 4
1 2 3 4
1 2 3 4

Dobbiamo cambiare solo il ciclo interno, impostando nel range i valori (1,5).

Dopo, ad ogni iterazione del ciclo interno stampiamo l’indice j.

Ecco dunque il codice:

for i in range(3):

for j in range(1,5):

print(j, end=‘ ‘)

print()


Terzo esempio

Adesso stampiamo i numeri in ordine decrescente, dunque variamo l’esempio precedente in modo da avere il seguente output:

4 3 2 1
4 3 2 1
4 3 2 1

Per stampare i numeri in ordine decrescente possiamo cambiare il range in modo tale che j varia da 4 a 1 con step di -1.

Ecco dunque il codice completo:

for i in range(3):

for j in range(4,0,-1):

print(j, end=‘ ‘)

print()

Alcuni link utili

Indice tutorial sul linguaggio python

1 – Introduzione al linguaggio python

2 – Le variabili in python

3 – Operatori aritmetici e di assegnazione in python

4 – Stringhe in python

5 – Casting in python

6 – Input e print in python

7 – Primi esercizi in python

8 – Errori in python

9 – Script python

10 – Scambio di variabili in python

11 – Libreria math

Autore dell'articolo: Cristina

Avatar per Coding Creativo

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *