Olá, Vanessa. Como vai?
Parabéns por mais uma resolução impecável! O seu código resolveu perfeitamente o problema da Ana utilizando uma estrutura de lista de dicionários, o que é um excelente padrão para representar registros de bancos de dados em Python.
A sua lógica condicional isolou com precisão apenas os livros que possuíam a chave "estoque" maior que zero.
Como o título da sua atividade é "Utilidade do continue em laços", vale muito a pena complementar o seu post no fórum mostrando para a comunidade como esse mesmo código pode ser reescrito utilizando o comando continue.
O Papel do continue no Fluxo do Código
Diferente do break (que aborta o laço por completo), o comando continue serve para interromper apenas a iteração atual, fazendo o Python ignorar tudo o que estiver abaixo dele dentro do bloco e pular imediatamente para o próximo item da lista.
Em termos de lógica de programação, nós o usamos para aplicar o conceito de Cláusula de Guarda (Guard Clauses), onde primeiro nós testamos o cenário que queremos descartar (o livro estar esgotado) para só depois executar a ação principal.
Veja como o seu código ficaria estruturado utilizando essa abordagem:
livros = [
{"nome": "1984", "estoque": 5},
{"nome": "Dom Casmurro", "estoque": 0},
{"nome": "O Pequeno Príncipe", "estoque": 3},
{"nome": "O Hobbit", "estoque": 0},
{"nome": "Orgulho e Preconceito", "estoque": 2}
]
for livro in livros:
# Cláusula de guarda: Se NÃO houver estoque, pula para o próximo livro
if livro["estoque"] == 0:
continue
# Esta linha só é executada se o livro passou no teste acima
print(f"Livro em estoque: {livro['nome']}")
Por que aprender essa alternativa?
Ambas as formas chegam ao mesmíssimo resultado que você exibiu na imagem. A grande vantagem de adotar o padrão com o continue em sistemas maiores é o ganho em legibilidade e a redução do alinhamento de blocos (nested blocks).
Em códigos complexos com muitas validações, se usarmos apenas if sobre if, o código vai se deslocando muito para a direita devido à indentação. Com o continue, limpamos as exceções logo no topo do laço e mantemos o fluxo principal do programa alinhado à esquerda, deixando a leitura muito mais fluida para outros desenvolvedores.
Muito obrigado por compartilhar mais uma atividade prática com tanta qualidade no nosso fórum!
Espero que possa ter lhe ajudado!