Python per Loop

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 valla 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

Diagramma di flusso del ciclo for in Python

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' rangeoggetto è "pigro" in un certo senso perché non genera ogni numero che "contiene" quando lo creiamo. Tuttavia, non è un iteratore dato che supporta in, lene __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 forloop 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 forciclo può anche avere un elseblocco opzionale . La elseparte viene eseguita se gli elementi nella sequenza utilizzata nel ciclo for si esauriscono.

La breakparola 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 elsee stampa Nessun elemento rimasto.

Questa for… elseistruzione può essere utilizzata con la breakparola chiave per eseguire il elseblocco solo quando la breakparola 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.

Articoli interessanti...