1
resposta

Dúvida em um um projeto para prática de Python

Bom dia, pessoal! Estou querendo praticar um pouco o conhecimento que venho adquirindo em Python e pensei em desenvolver uma ideia que será util para mim, mas estou com dificuldade mesmo em fazer o esboço do projeto. Pensei que vocês poderiam me ajudar.

A ideia é a seguinte: Criar um programa para ajudar a contabilizar as pessoas que entraram em um estabelecimento comercial a cada dia e também o que elas fizeram dentro desse estabelecimento. Vamos dizer que marcaremos cada pessoa que entrou e também dividir pelo que ela foi fazer no estabelecimento. (Pra mostrar aqui, vou simplificar em 3 categorias): COMPROU UM OU MAIS PRODUTOS | PEDIU UM ORÇAMENTO MAS NÃO COMRPOU | PRODUTO DESEJADO SEM ESTOQUE.

Ao final do dia de cada dia, gostaria de ter algo como:

'20/02/2023': { 'TOTAL PESSOAS QUE ENTRARAM: 50, 'COMPROU UM OU MAIS PRODUTOS: 40, 'PEDIU UM ORÇAMENTO MAS NÃO COMPROU: 7, 'PRODUTO DESEJADO SEM ESTOQUE': 3 }

A ideia é pegar esses dados e poder fazer relatórios semanais/mensais ou de acordo com a necessidade. Porém, não sei como fazer isso, como armazenar essas informações... pode ser utilizado um dicionário dentro de um dicionário, ou talvez um dicionário com uma lista, onde só os números e são armazenados e na hora de imprimir os dados, inserimos as informações, como na ideia abaixo...

'01/02/2023': [50, 40, 7, 3] '02/02/2023': [55, 42, 10, 3] '03/02/2023': [40, 45, 1, 4] '04/02/2023': [50, 40, 7, 3]

Ao finalizar cada atendimento, o atendente marcaria aquilo que o cliente foi fazer, exemplo: COMPROU UM OU MAIS PRODUTOS, e o sistema incrementaria dentro do dia atual o número de pessoas que entraram na loja, e a categoria escolhida.

Enfim, alguém poderia me dar uma luz de como começar? Desde já agradeço!

1 resposta

Olá, Luan!

Peço desculpas pela demora em obter um retorno

É uma boa ideia para praticar Python!

Uma forma de armazenar essas informações seria utilizando um dicionário dentro de um dicionário, como você mencionou. Você pode criar um dicionário onde as chaves são as datas e os valores são outros dicionários contendo as categorias e a quantidade de pessoas em cada uma delas.

Por exemplo:

Para facilitar a manipulação desses dados, você pode criar funções específicas, como uma função para adicionar um novo registro, uma função para gerar relatórios semanais/mensais, entre outras.

Aqui está um exemplo de como você pode começar:

registros = {}

def adicionar_registro(data, categoria):
    if data not in registros:
        registros[data] = {
            'TOTAL PESSOAS QUE ENTRARAM': 0,
            'COMPROU UM OU MAIS PRODUTOS': 0,
            'PEDIU UM ORÇAMENTO MAS NÃO COMPROU': 0,
            'PRODUTO DESEJADO SEM ESTOQUE': 0
        }
    registros[data][categoria] += 1
    registros[data]['TOTAL PESSOAS QUE ENTRARAM'] += 1

def gerar_relatorio(data):
    if data in registros:
        print(data + ':')
        for categoria, quantidade in registros[data].items():
            print(f'{categoria}: {quantidade}')
    else:
        print('Data não encontrada.')

# Exemplo de uso:
adicionar_registro('20/05/2023', 'COMPROU UM OU MAIS PRODUTOS')
adicionar_registro('20/05/2023', 'COMPROU UM OU MAIS PRODUTOS')
adicionar_registro('20/05/2023', 'PEDIU UM ORÇAMENTO MAS NÃO COMPROU')
gerar_relatorio('20/05/2023')

E um código para teste:

class AtendimentoTracker:
    def __init__(self):
        self.registros = {}

    def adicionar_registro(self, data, categoria):
        if data not in self.registros:
            self.registros[data] = {
                'TOTAL PESSOAS QUE ENTRARAM': 0,
                'COMPROU UM OU MAIS PRODUTOS': 0,
                'PEDIU UM ORÇAMENTO MAS NÃO COMPROU': 0,
                'PRODUTO DESEJADO SEM ESTOQUE': 0
            }
        self.registros[data][categoria] += 1
        self.registros[data]['TOTAL PESSOAS QUE ENTRARAM'] += 1

    def gerar_relatorio(self, data):
        if data in self.registros:
            print(data + ':')
            for categoria, quantidade in self.registros[data].items():
                print(f'{categoria}: {quantidade}')
        else:
            print('Data não encontrada.')

    def gerar_relatorio_periodo(self, inicio, fim):
        for data in self.registros.keys():
            if inicio <= data <= fim:
                self.gerar_relatorio(data)
                print('\n')


tracker = AtendimentoTracker()
tracker.adicionar_registro('18/08/2023', 'COMPROU UM OU MAIS PRODUTOS')
tracker.adicionar_registro('18/08/2023', 'PEDIU UM ORÇAMENTO MAS NÃO COMPROU')
tracker.adicionar_registro('18/08/2023', 'PEDIU UM ORÇAMENTO MAS NÃO COMPROU')
tracker.adicionar_registro('17/08/2023', 'COMPROU UM OU MAIS PRODUTOS')
tracker.adicionar_registro('17/08/2023', 'COMPROU UM OU MAIS PRODUTOS')

print("Relatório diário:")
tracker.gerar_relatorio('18/08/2023')
print("\nRelatório semanal:")
tracker.gerar_relatorio_periodo('16/08/2023', '18/08/2023')

Esse é apenas um exemplo inicial para te ajudar a começar. Você pode adaptar e melhorar o código de acordo com suas necessidades.

Espero ter ajudado e reforço que em casos de dúvidas, conte sempre com o fórum da comunidade Alura! Bons estudos!

Sucesso

Um grande abraço e até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!