Assim como os loops while, os loops for podem ter blocos else que são executados quando o loop for é concluído sem encontrar uma instrução break. A sintaxe para for…else é muito semelhante à sintaxe de while…else.
Vamos considerar este programa que verifica se um número fornecido é primo ou não. Um número é primo se for maior que 1 e não puder ser dividido por nenhum número além de 1 e ele mesmo.
# Programa para verificar se um número é primo ou não
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')
O programa irá verificar cada número dentro do intervalo [2, num) para ver se é um fator de num. Se encontrar um número assim, ele imprimirá {num} is not a prime number e sairá do loop. Como uma instrução break foi executada, o código no bloco else não será executado. No entanto, se nenhum número no intervalo for um fator de num, o código no bloco else será executado, e o programa imprimirá {num} is a prime number.
Desafio
A primeira linha da entrada contém n, seguida por n linhas de números inteiros. Sua tarefa é imprimir The first even number in the list is {num} ou There is no even number in the list se nenhum dos números fornecidos for par. Tente usar um loop for com um bloco else para resolver este desafio!