Ciclo for in Python [con esempi facili]

Il ciclo for in Python è una funzione di iterazione. Se hai un oggetto di sequenza come una lista, puoi utilizzare il ciclo for per iterare sugli elementi contenuti nella lista.

La funzionalità del ciclo for non è molto diversa da quella che si trova in molti altri linguaggi di programmazione.

In questo articolo, esploreremo in dettaglio il ciclo for in Python e impareremo a iterare su diverse sequenze, inclusi elenchi, tuple e altro ancora. Inoltre, impareremo a controllare il flusso del ciclo utilizzando le istruzioni break e continue.

Sintassi di base del ciclo for in Python

La sintassi di base del ciclo for in Python assomiglia a quanto segue.

for itarator_variable in sequence_name:
	Statements
	. . .
	Statements

Permettimi di spiegare meglio la sintassi del ciclo for in Python.

  • La prima parola dell’istruzione inizia con la parola chiave “for” che indica l’inizio del ciclo for.
  • Quindi abbiamo la variabile iteratore che itera sulla sequenza e può essere utilizzata all’interno del ciclo per eseguire varie funzioni
  • Il successivo è la parola chiave “in” in Python che indica alla variabile iteratore di iterare sugli elementi all’interno della sequenza.
  • E infine, abbiamo la variabile di sequenza che può essere una lista, una tupla o qualsiasi altro tipo di iteratore.
  • La parte degli statement del loop è dove puoi manipolare la variabile iteratore e eseguire varie funzioni.

1. Stampare singole lettere di una stringa usando il loop for

La stringa Python è una sequenza di caratteri. Se all’interno delle tue applicazioni di programmazione hai bisogno di scorrere individualmente i caratteri di una stringa, puoi usare il loop for qui.

Ecco come funzionerebbe per te.

word="anaconda"
for letter in word:
	print (letter)

Output:

a
n
a
c
o
n
d
a

Il motivo per cui questo loop funziona è perché Python considera una “stringa” come una sequenza di caratteri invece di considerare la stringa nel suo complesso.

2. Usare il loop for per iterare su una lista o una tupla Python

Gli elenchi e le tuple sono oggetti iterabili. Vediamo ora come possiamo iterare sugli elementi di questi oggetti.

words= ["Apple", "Banana", "Car", "Dolphin" ]
for word in words:
	print (word)

Output:

Apple
Banana
Car
Dolphin

Ora, procediamo e lavoriamo sull’iterazione degli elementi di una tupla qui.

nums = (1, 2, 3, 4)

sum_nums = 0

for num in nums:
    sum_nums = sum_nums + num

print(f'Sum of numbers is {sum_nums}')

# Output
# La somma dei numeri è 10

3. Annidamento di cicli for in Python

Quando abbiamo un ciclo for dentro un altro ciclo for, si chiama un ciclo for annidato. Ci sono molteplici applicazioni di un ciclo for annidato.

Considera l’esempio della lista sopra. Il ciclo for stampa singole parole dalla lista. Ma cosa succede se vogliamo stampare i singoli caratteri di ciascuna delle parole all’interno della lista invece?

Ecco dove funziona meglio un ciclo for annidato. Il primo ciclo (ciclo principale) passerà attraverso le parole una per una. Il secondo ciclo (ciclo figlio) ciclerà sui caratteri di ciascuna delle parole.

words= ["Apple", "Banana", "Car", "Dolphin" ]
for word in words:
        # Questo ciclo recupera la parola dalla lista
        print ("The following lines will print each letters of "+word)
        for letter in word:
                # Questo ciclo recupera la lettera per la parola
                print (letter)
        print("") # Questa stampa viene utilizzata per stampare una riga vuota

Produzione

4. Ciclo for Python con la funzione range()

Python range() è una delle funzioni integrate. Quando vuoi che il ciclo for venga eseguito per un numero specifico di volte, o devi specificare un intervallo di oggetti da stampare, la funzione range funziona davvero bene. Considera il seguente esempio in cui voglio stampare i numeri 1, 2 e 3.

for x in range(3):
    print("Printing:", x)
	
# Produzione

# Stampa: 0
# Stampa: 1
# Stampa: 2

La funzione range prende anche un altro parametro oltre all’inizio e alla fine. Questo è il parametro di passo. Indica alla funzione range quanti numeri saltare tra ogni conteggio.

Nell’esempio seguente, ho usato il numero 3 come passo e puoi vedere che i numeri di output sono il numero precedente + 3.

for n in range(1, 10, 3):
    print("Printing with step:", n)
	
# Produzione

# Stampa con passo: 1
# Stampa con passo: 4
# Stampa con passo: 7

5. dichiarazione break con ciclo for

La dichiarazione break viene utilizzata per uscire prematuramente dal ciclo for. Viene utilizzata per interrompere il ciclo for quando viene soddisfatta una specifica condizione.

Supponiamo di avere una lista di numeri e vogliamo verificare se un numero è presente o meno. Possiamo iterare sulla lista di numeri e se il numero viene trovato, interrompere il ciclo perché non è necessario continuare a iterare sugli elementi rimanenti.

In questo caso, useremo la condizione if else di Python insieme al nostro ciclo for.

nums = [1, 2, 3, 4, 5, 6]

n = 2

found = False
for num in nums:
    if n == num:
        found = True
        break

print(f'List contains {n}: {found}')

# Output
# La lista contiene 2: True

6. Dichiarazione continue con ciclo for

Possiamo utilizzare le dichiarazioni continue all’interno di un ciclo for per saltare l’esecuzione del corpo del ciclo for per una specifica condizione.

Supponiamo di avere una lista di numeri e vogliamo stampare la somma dei numeri positivi. Possiamo utilizzare le dichiarazioni continue per saltare il ciclo for per i numeri negativi.

nums = [1, 2, -3, 4, -5, 6]

sum_positives = 0

for num in nums:
    if num < 0:
        continue
    sum_positives += num

print(f'Sum of Positive Numbers: {sum_positives}')

6. Ciclo for in Python con blocco else

Possiamo utilizzare il blocco else con un ciclo for in Python. Il blocco else viene eseguito solo quando il ciclo for non è terminato da un’istruzione break.

Supponiamo di avere una funzione per stampare la somma dei numeri solo se tutti i numeri sono pari.

Possiamo utilizzare l’istruzione break per interrompere il ciclo for se è presente un numero dispari. Possiamo stampare la somma nella parte else in modo che venga stampata solo quando il ciclo for viene eseguito normalmente.

def print_sum_even_nums(even_nums):
    total = 0

    for x in even_nums:
        if x % 2 != 0:
            break

        total += x
    else:
        print("For loop executed normally")
        print(f'Sum of numbers {total}')


# questo stamperà la somma
print_sum_even_nums([2, 4, 6, 8])

# questo non stamperà la somma a causa di un numero dispari nella sequenza
print_sum_even_nums([2, 4, 5, 8])

# Output

# Ciclo for eseguito normalmente
# Somma dei numeri 20

Conclusione

Il ciclo for in Python è molto simile agli altri linguaggi di programmazione. Possiamo utilizzare le istruzioni break e continue con il ciclo for per alterarne l’esecuzione. Tuttavia, in Python, possiamo anche avere un blocco else opzionale nel ciclo for.

I hope you have gained some interesting ideas from the tutorial above. If you have any questions, let us know in the comments below.

Source:
https://www.digitalocean.com/community/tutorials/python-for-loop-example