In questo articolo imparerai a iterare su una sequenza di elementi usando le diverse varianti del ciclo for.
Video: Python per Loop
Cos'è il ciclo for in Python?
Il ciclo for in Python viene utilizzato per iterare su una sequenza (lista, tupla, stringa) o altri oggetti iterabili. L'iterazione su una sequenza è chiamata attraversamento.
Sintassi di for Loop
for val in sequenza: Corpo di for
Ecco val
la variabile che assume il valore dell'elemento all'interno della sequenza ad ogni iterazione.
Il ciclo continua fino a raggiungere l'ultimo elemento della sequenza. Il corpo del ciclo for è separato dal resto del codice usando l'indentazione.
Diagramma di flusso di for Loop

Esempio: Python per Loop
# Program to find the sum of all numbers stored in a list # List of numbers numbers = (6, 5, 3, 8, 4, 2, 5, 4, 11) # variable to store the sum sum = 0 # iterate over the list for val in numbers: sum = sum+val print("The sum is", sum)
Quando esegui il programma, l'output sarà:
La somma è 48
La funzione range ()
Possiamo generare una sequenza di numeri usando la range()
funzione. range(10)
genererà numeri da 0 a 9 (10 numeri).
Possiamo anche definire l'inizio, l'arresto e la dimensione del passo come range(start, stop,step_size)
. step_size il valore predefinito è 1 se non fornito.
L' range
oggetto è "pigro" in un certo senso perché non genera ogni numero che "contiene" quando lo creiamo. Tuttavia, non è un iteratore dato che supporta in
, len
e __getitem__
le operazioni.
Questa funzione non salva tutti i valori in memoria; sarebbe inefficiente. Quindi ricorda l'inizio, l'arresto, la dimensione del passo e genera il numero successivo in movimento.
Per forzare questa funzione a produrre tutti gli elementi, possiamo usare la funzione list()
.
Il seguente esempio lo chiarirà.
print(range(10)) print(list(range(10))) print(list(range(2, 8))) print(list(range(2, 20, 3)))
Produzione
intervallo (0, 10) (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) (2, 3, 4, 5, 6, 7) (2, 5, 8, 11, 14 , 17)
Possiamo usare la range()
funzione in for
loop per iterare attraverso una sequenza di numeri. Può essere combinato con la len()
funzione per scorrere una sequenza utilizzando l'indicizzazione. Ecco un esempio.
# Program to iterate through a list using indexing genre = ('pop', 'rock', 'jazz') # iterate over the list using index for i in range(len(genre)): print("I like", genre(i))
Produzione
Mi piace il pop, mi piace il rock, mi piace il jazz
for loop con else
Un for
ciclo può anche avere un else
blocco opzionale . La else
parte viene eseguita se gli elementi nella sequenza utilizzata nel ciclo for si esauriscono.
La break
parola chiave può essere utilizzata per interrompere un ciclo for. In questi casi, la parte else viene ignorata.
Quindi, la parte else di un ciclo for viene eseguita se non si verifica alcuna interruzione.
Ecco un esempio per illustrare questo.
digits = (0, 1, 5) for i in digits: print(i) else: print("No items left.")
Quando esegui il programma, l'output sarà:
0 1 5 Nessun articolo rimasto.
Qui, il ciclo for stampa gli elementi dell'elenco finché il ciclo non si esaurisce. Quando il ciclo for si esaurisce, esegue il blocco di codice in else
e stampa Nessun elemento rimasto.
Questa for… else
istruzione può essere utilizzata con la break
parola chiave per eseguire il else
blocco solo quando la break
parola chiave non è stata eseguita. Facciamo un esempio:
# program to display student's marks from record student_name = 'Soyuj' marks = ('James': 90, 'Jules': 55, 'Arthur': 77) for student in marks: if student == student_name: print(marks(student)) break else: print('No entry with that name found.')
Produzione
Nessuna voce con quel nome trovata.