Menu
CoddyTech

Ciclo annidato

Fa parte della sezione Fondamenti del percorso Python di Coddy. Lezione 41 di 77.

Un ciclo annidato è un ciclo all'interno di un altro ciclo. Il ciclo interno completa tutte le sue iterazioni per ogni iterazione del ciclo esterno.

Iniziamo con un semplice ciclo annidato per capire il concetto:

rows = 3
cols = 2

# Ciclo esterno
for i in range(rows):
    print(f"Outer loop iteration: {i}")
    
    # Ciclo interno
    for j in range(cols):
        print(f"  Inner loop iteration: {j}")

Quando esegui questo codice, vedrai:

Outer loop iteration: 0
  Inner loop iteration: 0
  Inner loop iteration: 1
Outer loop iteration: 1
  Inner loop iteration: 0
  Inner loop iteration: 1
Outer loop iteration: 2
  Inner loop iteration: 0
  Inner loop iteration: 1

Nota che, per ogni iterazione del ciclo esterno, il ciclo interno completa tutte le sue iterazioni. Ogni ciclo ha il proprio contatore: j riparte da 0 ogni volta che viene eseguito il ciclo esterno, mentre rows e cols rimangono uguali e indicano soltanto ai cicli quando fermarsi.

Ora vediamo un esempio pratico: stampare un semplice schema:

# Stampa un rettangolo di stelle 2x3
for row in range(2):  # 2 righe
    line = ""
    for col in range(3):  # 3 colonne
        line += "*"
    print(line)

# Output:
# ***
# ***

Il ciclo esterno controlla quante righe stampiamo, mentre il ciclo interno crea ogni riga aggiungendo asterischi.

challenge icon

Sfida

Facile

Scrivi codice che stampi un rettangolo di asterischi (*) usando cicli annidati.

Il tuo programma dovrebbe:

  1. Leggere due numeri interi: rows e cols
  2. Usare una struttura di cicli annidati per stampare il motivo
  3. Il ciclo esterno dovrebbe iterare su ogni riga
  4. Il ciclo interno dovrebbe costruire ogni riga con il numero corretto di asterischi
  5. Stampare ogni riga completata

Esempio: se l'input è 3 righe e 4 colonne, l'output dovrebbe essere:

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

Usa un nuovo contatore per ogni ciclo (per esempio i per le righe e j per gli asterischi in una riga) e confrontalo con rows o cols. Non modificare rows e cols: ogni riga ha bisogno di cols di nuovo.

Provalo tu

# Acquisisci l'input per righe e colonne
rows = int(input())
cols = int(input())

# Scrivi qui i tuoi cicli annidati
# Ciclo esterno per le righe
# Ciclo interno per le colonne
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore Python online