# Lista de dados (simulando um banco de dados com falhas/nulos)
projetos = ["website", "jogo", "análise de dados", None, "aplicativo móvel"]
# ---------------------------------------------------------
# 1. Abordagem com Laço FOR (Iteração Simples)
# ---------------------------------------------------------
print("--- Relatório de Projetos (Iteração FOR) ---")
# A função enumerate retorna o índice (i) e o valor (projeto)
# O parâmetro 'start=1' inicia a contagem visual em 1
for i, projeto in enumerate(projetos, start=1):
# Verifica se o dado é nulo antes de tentar processá-lo
if projeto is None:
print(f"{i:02d}. [!] PROJETO NÃO ENCONTRADO")
else:
# Formata a string para Título (primeiras letras maiúsculas)
print(f"{i:02d}. [+] {projeto.title()}")
print("\n" + "="*40 + "\n")
# ---------------------------------------------------------
# 2. Abordagem com Laço WHILE (Controle Manual de Índice)
# ---------------------------------------------------------
print("--- Relatório de Projetos (Iteração WHILE) ---")
indice = 0
total_projetos = len(projetos)
while indice < total_projetos:
projeto_atual = projetos[indice]
numero_lista = indice + 1 # Ajuste para exibição (não começar do zero)
# Lógica de validação idêntica
if projeto_atual is None:
print(f"{numero_lista:02d}. [!] PROJETO NÃO ENCONTRADO")
else:
print(f"{numero_lista:02d}. [+] {projeto_atual.title()}")
# Incremento obrigatório para evitar loop infinito
indice += 1