Loop

Python (e la maggior parte degli altri linguaggi di programmazione) ci dà un modo semplice di iterare, ogni elemento iterabile, ad esempio di una lista. Ovvero i loop (tradotto cicli).

Un loop è un modo per ripetere più volte un insieme di linee di codice.

Loop for

Il cliclo for può essere usato per iterare una lista di elementi ed eseguire una serie di azioni su ogni elemento.

La sintassi di un for loop consiste nell'assegnare un valore temporaneo ad una variabile ad ogni iterazione successiva.

for <valore temporaneo> in <una lista>.

Quando si scrive un ciclo for, ricordati di far indentare correttamente ogni azione, altrimenti si presenterà un IndentationError.

for <variabile temporanea> in <lista>:
  <fai questo>
  <...e quello>

numeri = [1,2,3,4,5]

for numero in numeri:
   print(numero)

range()

In Python, un for loop può essere usato per eseguire un'azione un numero specifico di volte consecutive.

La funzione range() può essere usata per creare una lista che può essere usata per specificare il numero di iterazioni di un ciclo for.

for i in range(3):
  print(i)

for i in range(3):
  print("Stampa")

Loop nidificati

In Python, i loop possono essere annidati all'interno di altri loop.

I loop nidificati possono essere utilizzati per accedere ad elementi di liste che si trovano all'interno di altre liste.

gruppi = [["Jobs", "Gates"], ["Newton", "Euclid"], ["Einstein", "Feynman"]]
# Questo ciclo esterno itera su ogni lista nella lista gruppi
for gruppo in gruppi:
  # Questo ciclo interno procederà attraverso ogni nome in ogni lista
  for nome in gruppo:
      print(nome)

List Comprehension

La list comprehension di Python fornisce un modo conciso per creare liste.

Consiste in parentesi quadre contenenti un'espressione seguita da una istruzione for, poi zero o più istruzioni for o if:
[ESPRESSIONE for ELEMENTO in LISTA <if CONDIZIONE>].

Le espressioni possono essere qualsiasi cosa, qualsiasi tipo di oggetto può entrare in una lista.

La list comprehension restituisce sempre una lista.

# List comprehension per i quadrati di tutti i numeri pari tra 0 e 9
risultato = [x**2 for x in range(10) if x % 2 == 0]

print (risultato)
[0, 4, 16, 36, 64]

Break e continue

In un loop, la parola chiave break fa uscire dal loop, indipendentemente dal numero di iterazione.

Una volta che la parola chiave break viene eseguita, il programma continuerà ad essere eseguito dopo il ciclo for.

La parola chiave continue viene utilizzata all'interno di un loop per saltare una parte di codice rimanente all'interno del blocco di codice del loop e iniziare la successiva iterazione del loop.

numeri = [0, 34, 55, -1, 33, 21]

for num in numeri:
  if (num < 0):
      print ("Numero negativo presente")
          break
  print (num)
# Stampa solo numeri positivi
for i in numeri:
   if i < 0:
     continue
  print (i)

Loop while

In Python, un while loop eseguirà ripetutamente un blocco di codice fintanto che una condizione sarà True.

La condizione di un while loop viene sempre controllata prima che il blocco di codice, indentato nel ciclo while, venga eseguito.
Se la condizione non è soddisfatta inizialmente, allora il blocco di codice non verrà mai eseguito.

i = 1

while i < 6:
  print (i)
  i = i + 1

Cicli infiniti

Un loop infinito è un loop che non termina mai.
I loop infiniti avvengono quando le condizioni del loop ne impediscono la fine.

Ciò potrebbe essere dovuto ad un errore di battitura nella dichiarazione condizionale all'interno del loop o ad una logica errata.

Per interrompere un programma Python che è in esecuzione in modo infinito, premere i tasti della tastiera Ctrl e c contemporaneamente.

i = 1

while i < 6:
  print (i)