Al igual que los bucles while, los bucles for pueden tener bloques else que se ejecutan cuando el bucle for finaliza sin encontrar una sentencia break. La sintaxis de for…else es muy similar a la sintaxis de while…else.
Consideremos este programa que verifica si el número dado es primo o no. Un número es primo si es mayor que 1 y no puede ser dividido por ningún número aparte de 1 y sí mismo.
# Programa para verificar si un número es 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')
El programa verificará cada número dentro del rango [2, num) para ver si es un factor de num. Si encuentra tal número, imprimirá {num} is not a prime number y saldrá del bucle. Como se ejecutó una sentencia break, el código en el bloque else no se ejecutará. Sin embargo, si ningún número en el rango es un factor de num, el código en el bloque else se ejecutará, y el programa imprimirá {num} is a prime number.
Desafío
La primera línea de la entrada contiene n, seguida de n líneas de números enteros. Tu tarea es imprimir The first even number in the list is {num} o There is no even number in the list si ninguno de los números de entrada es par. ¡Intenta usar un bucle for con un bloque else para resolver este desafío!