Proprio come i cicli while, i cicli for possono avere blocchi else che vengono eseguiti quando il ciclo for si completa senza incontrare un'istruzione break. La sintassi di for…else è molto simile a quella di while…else.
Consideriamo questo programma che verifica se il numero dato è primo o no. Un numero è primo se è maggiore di 1 e non può essere diviso per nessun numero diverso da 1 e da se stesso.
# Programma per verificare se un numero è primo o no
num = int(input('Enter a number: '))
for i in range(2, num):
if num % i == 0:
print(f'{num} is not a prime number')
break
else:
print(f'{num} is a prime number')
Il programma controllerà ogni numero nell'intervallo [2, num) per vedere se è un fattore di num. Se ne trova uno, stamperà {num} is not a prime number ed uscirà dal ciclo. Poiché è stata eseguita un'istruzione break, il codice nel blocco else non verrà eseguito. Tuttavia, se nessun numero nell'intervallo è un fattore di num, il codice nell'istruzione else verrà eseguito e il programma stamperà {num} is a prime number.
Sfida
La prima riga dell'input contiene n, seguita da n righe di numeri interi. Il tuo compito è stampare The first even number in the list is {num} oppure There is no even number in the list se nessuno dei numeri di input è pari. Prova a usare un ciclo for con un blocco else per risolvere questa sfida!