Python 3 - per istruzioni di ciclo

L'istruzione for in Python ha la capacità di iterare sugli elementi di qualsiasi sequenza, come un elenco o una stringa.

Sintassi

for iterating_var in sequence:
   statements(s)

Se una sequenza contiene un elenco di espressioni, viene valutata per prima. Quindi, il primo elemento della sequenza viene assegnato alla variabile iterante iterating_var . Successivamente, viene eseguito il blocco delle istruzioni. Ogni elemento nell'elenco viene assegnato a iterating_var e il blocco delle istruzioni viene eseguito fino a quando l'intera sequenza non è esaurita.

Diagramma di flusso

La funzione range ()

La funzione incorporata range () è la funzione giusta per iterare su una sequenza di numeri. Genera un iteratore di progressioni aritmetiche.

Esempio

>>> range(5)
range(0, 5)
>>> list(range(5))
[0, 1, 2, 3, 4]

Esempio

range () genera un iteratore per far avanzare numeri interi che iniziano con 0 fino a n-1. Per ottenere un oggetto elenco della sequenza, viene convertito in list (). Ora questo elenco può essere iterato usando l'istruzione for.

>>> for var in list(range(5)):
   print (var)

Produzione

Questo produrrà il seguente output.

0
1
2
3
4

Esempio

#!/usr/bin/python3

for letter in 'Python':     # traversal of a string sequence
   print ('Current Letter :', letter)
print()
fruits = ['banana', 'apple',  'mango']

for fruit in fruits:        # traversal of List sequence
   print ('Current fruit :', fruit)

print ("Good bye!")

Produzione

Quando il codice sopra viene eseguito, produce il seguente risultato:

Current Letter : P
Current Letter : y
Current Letter : t
Current Letter : h
Current Letter : o
Current Letter : n

Current fruit : banana
Current fruit : apple
Current fruit : mango
Good bye!

Iterazione per indice di sequenza

Un modo alternativo di iterare attraverso ogni elemento è l'offset dell'indice nella sequenza stessa. Di seguito è riportato un semplice esempio:

Esempio

#!/usr/bin/python3

fruits = ['banana', 'apple',  'mango']
for index in range(len(fruits)):
   print ('Current fruit :', fruits[index])

print ("Good bye!")

Produzione

Quando il codice sopra viene eseguito, produce il seguente risultato:

Current fruit : banana
Current fruit : apple
Current fruit : mango
Good bye!

Qui, abbiamo preso l'assistenza della funzione built-in len (), che fornisce il numero totale di elementi nella tupla così come la funzione built-in range () per darci la sequenza effettiva su cui iterare.

Uso dell'istruzione else con i cicli

Python supporta la presenza di un'istruzione else associata a un'istruzione loop.

  • Se la else istruzione viene utilizzata con a for loop, il else block viene eseguito solo se i cicli for terminano normalmente (e non incontrando l'istruzione break).

  • Se la else istruzione viene utilizzata con a while loop, il else viene eseguita quando la condizione diventa falsa.

Esempio

L'esempio seguente illustra la combinazione di un'istruzione else con un'istruzione for istruzione che cerca il numero pari nell'elenco fornito.

#!/usr/bin/python3

numbers = [11,33,55,39,55,75,37,21,23,41,13]

for num in numbers:
   if num%2 == 0:
      print ('the list contains an even number')
      break
else:
   print ('the list doesnot contain even number')

Produzione

Quando il codice sopra viene eseguito, produce il seguente risultato:

the list does not contain even number