Médio Python
Busca com break e else
Enunciado
Dada a lista frutas = ["maçã", "banana", "laranja", "uva"], escreva um programa que procure por "laranja". Se encontrar, imprima "Encontrei laranja!" e use break para sair do loop. Se não encontrar, imprima "Não encontrei laranja." usando o else do for.
Requisitos
- Usar
forpara percorrer a lista. - Usar
breakao encontrar o item. - Usar
elsenoforpara o caso de não encontrar. - Imprimir exatamente a mensagem correspondente.
Código inicial
frutas = ["maçã", "banana", "laranja", "uva"]
# Complete com for, break e else
Saída esperada
Encontrei laranja!
Ver dica
O else do for executa apenas se o loop não for interrompido por break.
Mostrar solução
frutas = ["maçã", "banana", "laranja", "uva"]
for fruta in frutas:
if fruta == "laranja":
print("Encontrei laranja!")
break
else:
print("Não encontrei laranja.")
Passo a passo
- Definimos a lista
frutascom quatro strings. - O
forpercorre cada elemento da lista. - Dentro do loop, o
ifcompara a fruta atual com"laranja". - Se for igual, imprimimos a mensagem e usamos
breakpara encerrar o loop imediatamente. - O
elsedoforsó executa se o loop terminar sembreak. Como"laranja"está na lista, obreakacontece e oelseé ignorado.
Por que funciona
O else de um loop é uma característica do Python que executa apenas quando o loop termina naturalmente, sem break. Isso é útil para buscas: se encontrarmos o item, saímos com break e não mostramos a mensagem de falha. Se percorrermos toda a lista sem encontrar, o else é executado.
Erros comuns
- Colocar o
print("Não encontrei...")dentro doelsedoif: isso imprimiria a mensagem várias vezes. - Esquecer o
break: o loop continuaria e oelsenão seria executado, mas a mensagem de encontrado apareceria apenas uma vez (ainda correto, porém sem a eficiência do break). - Usar
elsealinhado com oifem vez dofor: o comportamento seria diferente.
Outra forma de resolver
if "laranja" in frutas:
print("Encontrei laranja!")
else:
print("Não encontrei laranja.")
Mais conciso, mas não demonstra o uso de break e else de loop.
Saída esperada
Encontrei laranja!