1
resposta

Programa gerado com listas e funções

import os

livros = [
    {'nome': "1984", 'estoque': 2}, 
    {'nome': "Dom Casmurro", 'estoque': 3},
    {'nome': "O Pequeno Príncipe", 'estoque': 1}, 
    {'nome': "O Hobbit", 'estoque': 5},
    {'nome': "Orgulho e Preconceito", 'estoque': 8}
]

def lista_livros():
    for livro in livros:
        print(f'Nome-{livro['nome']} | Estoque-{livro['estoque']}')
    print('\n')


def compra_livro(livro_desejado):
    livro_encontrado = False

    for livro in livros:
        if livro['nome'].lower() == livro_desejado:
            livro_encontrado = True

            if livro['estoque'] > 0:
                livro['estoque'] = livro['estoque'] - 1
                print(f'\nCompra do livro {livro['nome']} finalizada')

                if livro['estoque'] == 0:
                    print('Estouqe esgotado')
                print(f'resta {livro['estoque']} disponivel \n')

            else:
                print('Estouqe esgotado')
            
    if not livro_encontrado:
        print('Livro não encontrado \n')
    
    input('Enter para continuar')
    menu()    



def menu(): 
    os.system('cls')
    sair = (input('Digite 1 para sair do programa ou Enter para continuar'))
    if '1' == sair:
        os.system('cls')
        return

    lista_livros()
    livro_desejado = input('Qual livro deseja comprar : ').lower()
    compra_livro(livro_desejado)


if __name__ == '__main__':
    menu()
1 resposta

Olá, Cauan!

Parabéns por concluir o desafio do Controle de estoque. Ficou nítido como você evoluiu na organização do código ao utilizar funções e dicionários para gerenciar dados de forma mais estruturada.

Sua solução demonstra um ótimo domínio sobre a manipulação de listas de dicionários. Ao centralizar as ações em funções como lista_livros e compra_livro, você deixa o programa muito mais fácil de ler e manter. Outro ponto excelente foi o uso do .lower() na busca, o que torna o sistema mais amigável, já que ele consegue encontrar o livro mesmo que o usuário não digite exatamente as letras maiúsculas e minúsculas como estão no cadastro.

Na sua visão, você acredita que utilizar dicionários facilitou a visualização do estoque em comparação com o uso de listas separadas para nomes e quantidades?

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