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 for para percorrer a lista.
  • Usar break ao encontrar o item.
  • Usar else no for para 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

  1. Definimos a lista frutas com quatro strings.
  2. O for percorre cada elemento da lista.
  3. Dentro do loop, o if compara a fruta atual com "laranja".
  4. Se for igual, imprimimos a mensagem e usamos break para encerrar o loop imediatamente.
  5. O else do for só executa se o loop terminar sem break. Como "laranja" está na lista, o break acontece e o else é 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 do else do if: isso imprimiria a mensagem várias vezes.
  • Esquecer o break: o loop continuaria e o else não seria executado, mas a mensagem de encontrado apareceria apenas uma vez (ainda correto, porém sem a eficiência do break).
  • Usar else alinhado com o if em vez do for: 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!