Giter Site home page Giter Site logo

fornecedores2's Introduction

fornecedores2

Descrição

Segunda versão do exercício proposto em Python e HTML. Agora temos uma arquivo CSV como exemplo de entrada abaixo.

empresa,fornecedor,data,valor
A,F1,2018-12-10,1000.00
A,F2,2018-12-11,1500.00
A,F2,2019-01-20,1500.00
A,F1,2019-01-20,2000.00
B,F2,2019-01-31,400.00
A,F3,2019-03-01,500.00
B,F3,2019-03-06,900.01
B,F1,2019-03-06,1400.00

E queremos obter a tabela em HTML da figura

alt text

O objetivo agora é achar o fornecedor maximal cuja soma de pagamentos em um dado mês é máxima, ou seja, queremos achar o grupo de fornecedores cuja soma de pagamentos por empresa representa a soma máxima do conjunto de pagamentos.

Para isso utilizaremos os scripts fornecedores3.py e construtor_html.py.

Obs.: Foi reportado um bug na versão anterior na criação da chave-mês do dicionário que já foi devidamente consertado e simplificado.

Execução

Baixe os arquivos fornecedores3.py e construtor_html.py, também baixe o arquivo pagamentos_sample.csv neste repositório.

Ao terminar, abra o terminal e vá para a pasta onde estão os arquivos, aplique o comando

python3 construtor_html.py

Ao aplicar o comando a seguinte mensagem vai aparecer

python3 construtor_html.py
Insira o caminho do seu arquivo CSV
       

Você deve digitar o endereço do arquivo CSV no mesmo formato da entrada do exemplo da execução. Caso o arquivo esteja na mesma pasta dos .py é só fazer o comando abaixo

python3 construtor_html.py
Insira o caminho do seu arquivo CSV
pagamentos_sample.csv       

Se não, faça algo parecido com esse comando:

python3 construtor_html.py
Insira o caminho do seu arquivo CSV
/home/lima/Desktop/pagamentos_sample.csv       

O programa vai executar e gerar um arquivo html na mesma pasta que você salvou os .py

Lógica de execução

No script referente ao arquivo fornecedores3.py A função principal do script recebe uma entrada fornecida pelo usuário, que deve corresponder ao arquivo CSV na mesma forma que a do exemplo.

As linhas do CSV foram lidas e tratadas para uma estrutura de dados do tipo dicionário, onde são associdos um valor a uma chave.

As chaves do dicionario é gerada na hora da leitura do arquivo e associa um mês com uma string da seguinte forma

Ano-Mes
2019-07
2019-10

Em cada chave do dicionário são salvos em uma lista as linhas do arquivo CSV que pertencem aquele mês, cada linha é um array com quatro posições, respectivamente: empresa, fornecedor, data, pagamento.

Uma vez que todos as linhas estão associdas com as suas respectivas chaves, podemos procurar o valor máximo de soma de pagamentos em cada mês. Para isso utilizaremos outro dicionário chamado soma_fornecedores que para cada chave_fornecedor vai guardar as somas dos fornecedores que foram pagos para aquele período de tempo. Após o armazenamento das somas, decidimos quem são os fornecedores com o valor máximo daquele mês e salvamos no dicionário fornecedores_pagamento_maximo.

fornecedores2's People

Contributors

lcslima45 avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.