Lógica de Programação: Algoritmos de Busca e Organização de Dados

POR CÓDIGO DA HORA • 16 MARÇO 2026

O Coração da Programação: Lógica e Estrutura

Programar não é apenas escrever comandos, é resolver problemas de forma eficiente. Um dos maiores desafios de um desenvolvedor é gerenciar volumes de dados. Como encontrar um item em uma lista de milhões? Como garantir que as informações estejam organizadas?

Nesta aula, exploramos como o Python utiliza Listas e Dicionários para estruturar dados e como criar funções de busca inteligente.

🛠️ Projeto Prático: Simulador de Biblioteca

Vamos construir um script que cadastra livros, armazena seus dados em uma estrutura composta e permite realizar buscas por título ou autor.

# --- Simulador de Biblioteca: Aula de Lógica ---

# Estrutura de dados inicial (Lista de Dicionários)
biblioteca = [
    {"titulo": "Aprenda Python em 24h", "autor": "Sams Teach Yourself", "ano": 2014},
    {"titulo": "Web Scraping Profissional", "autor": "Código da Hora", "ano": 2026},
    {"titulo": "Lógica de Programação", "autor": "Alan Turing", "ano": 1940}
]

def buscar_livro(termo):
    print(f"\\n🔍 Iniciando busca por: '{termo}'...")
    resultados = []
    
    # Lógica de Busca Iterativa
    for livro in biblioteca:
        if termo.lower() in livro["titulo"].lower() or termo.lower() in livro["autor"].lower():
            resultados.append(livro)
            
    return resultados

def exibir_resultados(lista):
    if not lista:
        print("❌ Nenhum livro encontrado.")
    else:
        print(f"✅ Sucesso! Encontramos {len(lista)} livro(s):")
        for item in lista:
            print(f"- {item['titulo']} ({item['autor']}), {item['ano']}")

if __name__ == "__main__":
    exibir_resultados(buscar_livro("Python"))
    exibir_resultados(buscar_livro("Código"))

Análise Técnica

Utilizamos .lower() para uma busca Case-Insensitive. A estrutura de Lista de Dicionários simula como bancos de dados modernos organizam informações, permitindo que cada item tenha múltiplas propriedades acessíveis por chaves.