For else

Il ciclo for … else in Python è un costrutto modo potente per gestire situazioni in cui si desidera eseguire un blocco di codice solo se il ciclo for è stato completato con successo, senza l’uso di un flag o variabile di controllo aggiuntiva.

Il costrutto for…else è particolarmente utile quando si desidera eseguire un’azione se un elemento è trovato o se il ciclo termina con successo, senza dover aggiungere complessità al codice utilizzando variabili di controllo aggiuntive.

Ecco come funziona:

for elemento in sequenza:
    # Blocco di codice del ciclo
    if condizione:
        # Codice da eseguire se la condizione è soddisfatta
        break
else:
    # Blocco di codice da eseguire se il ciclo è stato completato senza interruzioni

Quando il ciclo “for” viene eseguito senza interruzioni, il blocco di codice sotto “else” verrà eseguito. Se viene incontrata un’istruzione “break” all’interno del ciclo, il blocco di codice sotto “else” non verrà eseguito.

Primo esempio ciclo for else in Python

Ecco un esempio pratico per illustrare l’utilizzo del ciclo for … else:

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

for elemento in elenco:
    if elemento == 6:
        print("Numero trovato!")
        break
else:
    print("Numero non trovato!")

In questo esempio, se il numero 6 è presente nell’elenco, verrà stampato “Numero trovato!”. Altrimenti, verrà stampato “Numero non trovato!”.

Secondo esempio ciclo for else in Python

In questo secondo esempio verifichiamo se un numero è primo con il ciclo for else:

numero = 17

for i in range(2, numero // 2 + 1):
    if numero % i == 0:
        print(f"{numero} non è un numero primo.")
        break
else:
    print(f"{numero} è un numero primo.")

In questo esempio, il programma verifica se il numero dato è un numero primo. Se trova un divisore diverso da 1 e se stesso, il ciclo si interrompe e viene stampato un messaggio che indica che il numero non è primo. Se il ciclo termina senza interruzioni, viene stampato un messaggio che indica che il numero è primo.

Migliora le tue capacità di programmazione Python seguendo i nostri corsi in diretta!

corsi Python

Terzo esempio ciclo for else

In questo esempio verifichiamo se un numero è un quadrato perfetto:

numero = 25

for i in range(numero):
    if i * i == numero:
        print(f"{numero} è un quadrato perfetto.")
        break
else:
    print(f"{numero} non è un quadrato perfetto.")

Il ciclo for scorre tutti i numeri da 0 a numero - 1. Se trova un numero il cui quadrato è uguale a numero, allora il numero è un quadrato perfetto e il messaggio corrispondente viene stampato. Se il ciclo termina senza interruzioni, significa che il numero non è un quadrato perfetto e viene stampato un messaggio appropriato.

Conclusioni

Il costrutto for…else in Python consente di gestire situazioni in cui si desidera eseguire un blocco di codice solo se il ciclo for è stato completato con successo, senza la necessità di utilizzare flag o variabili di controllo aggiuntive.

Questo costrutto è particolarmente utile quando si desidera eseguire un’azione se un elemento è trovato durante l’iterazione o se il ciclo termina con successo senza interruzioni, aggiungendo un’eleganza e una chiarezza al codice senza introdurre complessità inutile.

Abbiamo esaminato diversi esempi di utilizzo del costrutto for…else, dal trovare un elemento in un elenco alla verifica se un numero è primo o un quadrato perfetto, dimostrandone l’efficacia nel semplificare il codice e migliorare la sua leggibilità.

Seguite le prossime lezioni per altri importanti argomenti del linguaggio Python e se volete approfondire vi suggerisco il libro avvincente “50 Algoritmi per imparare Python” disponibile su Amazon.

Alcuni link utili

Corso in diretta su Python

Le liste

Contare gli elementi di una lista con count

Tuple

Numeri random

Introduzione ai dizionari in Python

Ordinare un dizionario in Python

Operazioni con i file in Python

Python Sort

Introduzione alla programmazione ad oggetti