Olá, Filipe. Como vai?
Excelente escolha de projeto para fechar o entendimento sobre controle de fluxo! O comando continue é o complemento perfeito para o break que vimos anteriormente. Enquanto o break encerra o laço, o continue apenas "pula" para a próxima volta, o que é ideal para filtros e limpezas de dados.
Sua solução está tecnicamente impecável. Vamos destacar os pontos fundamentais da sua lógica:
1. Manipulação de Dicionários em Listas
Você subiu o nível do código ao utilizar uma lista de dicionários ({"nome": "...", "estoque": ...}). Essa é a estrutura real de como dados são organizados em bancos de dados e APIs, permitindo que você armazene múltiplas informações sobre um mesmo objeto de forma organizada.
2. A Lógica de "Pulo" do continue
Ao encontrar um livro com estoque == 0, o continue diz ao Python: "Pare o que está fazendo nesta iteração e vá direto para o próximo livro da lista". Por causa disso, o comando print que está abaixo dele é ignorado apenas para os livros indisponíveis.
3. Código Limpo (Clean Code)
Utilizar o continue para tratar casos de exceção (como o estoque vazio) logo no início do laço é uma prática que reduz o nível de aninhamento do código. Em vez de colocar todo o seu código principal dentro de um if, você remove os itens indesejados primeiro e deixa o fluxo principal livre para ser executado.
Sugestão de Experimento:
Para tornar a saída ainda mais amigável, você poderia adicionar um contador de quantos livros foram filtrados ou utilizar f-strings para mostrar a quantidade de cada um:
for livro in livros:
if livro["estoque"] == 0:
continue
print(f"Livro disponível: {livro['nome']} (Estoque: {livro['estoque']})")
Com este projeto, você consolidou os principais pilares da programação em Python: estruturas de dados, laços de repetição e condicionais de controle. Seu progresso técnico está muito evidente na qualidade e organização dos seus scripts!
Espero que possa ter lhe ajudado!