1
resposta

[Dúvida] Está conforme a atividade?

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 i in livros:
    if i["estoque"] == 0:
        continue

    print("O livros disponiveis são: Livro: {} | Estoque: {}"
             .format(i["nome"], i["estoque"]))
1 resposta

Oii Samuel,

Sim, sua solução tá correta e atende perfeitamente ao objetivo do exercício, que é utilizar a palavra-chave continue para pular uma iteração do laço quando uma condição específica (estoque zerado) for atendida.

Você acertou na lógica: quando o interpretador encontra o continue, ele ignora tudo o que está abaixo e volta para o início do laço para pegar o próximo item.

Tenho apenas duas sugestões de boas práticas para deixar seu código mais legível:

1. Nome da variável no laço
Você usou for i in livros. Embora funcione, o nome i geralmente é usado para índices numéricos. Como você está percorrendo uma lista de objetos, substituir i por livro torna o código autoexplicativo ("para cada livro na lista de livros...").

2. Formatação de Texto (f-strings)
Você utilizou o .format(), que é correto, mas um pouco antigo. O Python moderno (a partir da versão 3.6) utiliza as f-strings, que deixam o código mais limpo e fácil de escrever.

Veja como ficaria seu código com esses ajustes:

for livro in livros:  # Mudamos de 'i' para 'livro'
    if livro["estoque"] == 0:
        continue

    # Usando f-string (note o 'f' antes das aspas)
    print(f"O livro disponível é: {livro['nome']} | Estoque: {livro['estoque']}")

Parabéns pela resolução.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!