Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Fiz um pouco mais...

while True:
    
    livros = [
    {"nome": "1984", "estoque": 5},
    {"nome": "Dom Casmurro", "estoque": 0},
    {"nome": "O Pequeno Principe", "estoque": 3},
    {"nome": "O Hobbit", "estoque": 0},
    {"nome": "Orgulho e Preconceito", "estoque": 2}
    ]

    pesq = input("\nDigite o nome do livro para pesquisa de estoque:  ")

    com_estoque = list({})
    sem_estoque = list({})

    for livro in livros:
        if pesq in livro["nome"]:
            if livro["estoque"] > 0:
                #print(f'\n{livro["nome"]} | Estoque: {livro["estoque"]}')
                com_estoque.append({"nome":livro["nome"],"estoque":livro["estoque"]})
            else:
                #print(f"\n{livro["nome"]} | Indisponivel")
                sem_estoque.append({"nome":livro["nome"],"estoque":0})
    print("\nLivros disponiveis:")
    for livro in com_estoque:
        print(f"{livro["nome"]} \t- {livro["estoque"]} unidades")
    print("\nLivros indisponiveis:")
    for livro in sem_estoque:
        print(f"{livro["nome"]}")
1 resposta
solução!

Boa tarde, Estudante! Tudo bem com você?

Percebi que você utilizou vários recursos da linguagem, como listas, dicionários e laços, demonstrando uma boa compreensão dos recursos disponíveis. Mandou muito bem! O objetivo dos desafios práticos deste curso é exatamente esse: incentivar você a explorar possibilidades e superar desafios no mundo da programação. Agora, gostaria de compartilhar algumas sugestões que podem melhorar ainda mais o seu código:

  • Quando utilizamos aspas duplas no texto formatado (f-string), é necessário que as aspas dentro do conteúdo sejam simples para evitar interferências. Por exemplo:

    print(f'{livro["nome"]} \t- {livro["estoque"]} unidades')
    
  • Para tornar a experiência do usuário mais completa, podemos exibir uma mensagem caso nenhum livro seja encontrado durante a pesquisa. Isso ajuda a evitar confusões. Um exemplo de como implementar isso seria:

    if not com_estoque and not sem_estoque:
         print("\nNenhum livro encontrado com esse nome.\n")
    

Código completo após as mudanças:

while True:
    livros = [
        {"nome": "1984", "estoque": 5},
        {"nome": "Dom Casmurro", "estoque": 0},
        {"nome": "O Pequeno Principe", "estoque": 3},
        {"nome": "O Hobbit", "estoque": 0},
        {"nome": "Orgulho e Preconceito", "estoque": 2}
    ]

    pesq = input("\nDigite o nome do livro para pesquisa de estoque:  ")

    com_estoque = []
    sem_estoque = []

    for livro in livros:
        if pesq.lower() in livro["nome"].lower():
            if livro["estoque"] > 0:
                com_estoque.append({"nome": livro["nome"], "estoque": livro["estoque"]})
            else:
                sem_estoque.append({"nome": livro["nome"], "estoque": 0})

    if not com_estoque and not sem_estoque:
        print("\nNenhum livro encontrado com esse nome.\n")
    else:
        print("\nLivros disponíveis:")
        for livro in com_estoque:
            print(f'{livro["nome"]} \t- {livro["estoque"]} unidades')
        print("\nLivros indisponíveis:")
        for livro in sem_estoque:
            print(f'{livro["nome"]}')

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição. Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado