Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

[Projeto] Resolução - Verificando itens na despensa

Boa tarde! Estou tentando juntar todos os meus conhecimentos no curso de python, por isso fiz um código mais 'robusto' (diferente da opinião do instrutor). Aguardo correções!

class Despensa:
    def __init__(self):
        self.itens = []

        self.itens = ['arroz', 'feijão', 'macarrão', 'óleo', 'sal', 'açúcar'] #Itens pré-definidos como exemplo.

    def mostrar_menu(self):
        return 'Bem-vindo à despensa de Roberto! O que você gostaria de fazer?\n 1. Listar itens na despensa\n 2. Adicionar item à despensa\n3. Verificar se um item está na despensa\n 4. Sair'
    
    def listar_itens(self):
        if not self.itens:
            return 'A despensa está vazia.'
        else:
            return 'Itens na despensa: ' + ', '.join(self.itens)

    def adicionar_item(self, item):
        self.itens.append(item)

    def verificar_item(self, item):
        if item in self.itens:
            return f'{item} já está na despensa.'
        else:
            return f'{item} não está na despensa. Você precisa comprá-lo.'
        
    def input_opcao(self):
        while True:
            print(self.mostrar_menu())
            opcao = input('Digite o número da opção desejada: ')
            if opcao == '1':
                print(self.listar_itens())
            elif opcao == '2':
                item = input('Digite o nome do item que deseja adicionar: ')
                self.adicionar_item(item)
                print(f'{item} foi adicionado à despensa.')
            elif opcao == '3':
                item = input('Digite o nome do item que deseja verificar: ')
                print(self.verificar_item(item))
            elif opcao == '4':
                print('Saindo do programa. Até mais!')
                break
            else:
                print('Opção inválida. Por favor, tente novamente.')
                
def main():
    despensa = Despensa()
    despensa.input_opcao()


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

Oi, Thaís! Como vai?

Gostei bastante da forma como você foi além da proposta da atividade e aplicou conceitos de orientação a objetos, criando uma classe para organizar as funcionalidades da despensa. A estrutura dos métodos ficou clara e o menu interativo tornou a solução mais completa. Um detalhe que chamou atenção foi a separação das responsabilidades em métodos específicos, algo muito utilizado em projetos maiores.

Uma dica interessante para o futuro é evitar adicionar itens duplicados na lista. Você pode fazer uma verificação antes de inserir um novo item. Veja este exemplo:


item = input('Digite um item: ')

if item not in self.itens:
    self.itens.append(item)
    print('item adicionado')
else:
    print('item ja existe')

Esse código verifica se o item já está na lista antes de adicioná-lo, ajudando a manter os dados organizados.

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