Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

resolução-desafio-laryssa #16

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
138 changes: 138 additions & 0 deletions exercicios/para-casa/resoluçao.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
#Use o dataset dataset_casa que se encontra no material adicional no classroom e cole para o seu arquivo python - assim como fizemos em aula, se lembra?

dataset = [
{'ano_receita': 2022, 'mes_receita': '1', 'faturamento': 49179, 'despesas': 6295},
{'ano_receita': 2022, 'mes_receita': '2', 'faturamento': 12018, 'despesas': 43329},
{'ano_receita': 2022, 'mes_receita': '3', 'faturamento': 23524, 'despesas': 49376},
{'ano_receita': 2022, 'mes_receita': '4', 'faturamento': 29615, 'despesas': 16973},
{'ano_receita': 2022, 'mes_receita': '5', 'faturamento': 26527, 'despesas': 43742},
{'ano_receita': 2022, 'mes_receita': '6', 'faturamento': 48400, 'despesas': 11447},
{'ano_receita': 2022, 'mes_receita': '7', 'faturamento': 27219, 'despesas': 25593},
{'ano_receita': 2022, 'mes_receita': '8', 'faturamento': 46787, 'despesas': 19018},
{'ano_receita': 2022, 'mes_receita': '9', 'faturamento': 32306, 'despesas': 13522},
{'ano_receita': 2022, 'mes_receita': '10', 'faturamento': 27106, 'despesas': 15969},
{'ano_receita': 2022, 'mes_receita': '11', 'faturamento': 15255, 'despesas': 20105},
{'ano_receita': 2022, 'mes_receita': '12', 'faturamento': 23864, 'despesas': 32509},
{'ano_receita': 2023, 'mes_receita': '1', 'faturamento': 47240, 'despesas': 55776},
{'ano_receita': 2023, 'mes_receita': '2', 'faturamento': 42771, 'despesas': 36819},
{'ano_receita': 2023, 'mes_receita': '3', 'faturamento': 18008, 'despesas': 35853},
{'ano_receita': 2023, 'mes_receita': '4', 'faturamento': 21857, 'despesas': 6940},
{'ano_receita': 2023, 'mes_receita': '5', 'faturamento': 29735, 'despesas': 59626},
{'ano_receita': 2023, 'mes_receita': '6', 'faturamento': 33704, 'despesas': 30072},
{'ano_receita': 2023, 'mes_receita': '7', 'faturamento': 26515, 'despesas': 12129},
{'ano_receita': 2023, 'mes_receita': '8', 'faturamento': 18149, 'despesas': 21663},
{'ano_receita': 2023, 'mes_receita': '9', 'faturamento': 46176, 'despesas': 12564},
{'ano_receita': 2023, 'mes_receita': '10', 'faturamento': 24649, 'despesas': 58127},
{'ano_receita': 2023, 'mes_receita': '11', 'faturamento': 44484, 'despesas': 5304},
{'ano_receita': 2023, 'mes_receita': '12', 'faturamento': 30840, 'despesas': 5055},
{'ano_receita': 2024, 'mes_receita': '1', 'faturamento': 28726, 'despesas': 25133},
{'ano_receita': 2024, 'mes_receita': '2', 'faturamento': 34962, 'despesas': 26537},
{'ano_receita': 2024, 'mes_receita': '3', 'faturamento': 49424, 'despesas': 29649},
{'ano_receita': 2024, 'mes_receita': '4', 'faturamento': 42698, 'despesas': 54170},
{'ano_receita': 2024, 'mes_receita': '5', 'faturamento': 37237, 'despesas': 48453},
{'ano_receita': 2024, 'mes_receita': '6', 'faturamento': 30665, 'despesas': 8782},
{'ano_receita': 2024, 'mes_receita': '7', 'faturamento': 39597, 'despesas': 12261},
{'ano_receita': 2024, 'mes_receita': '8', 'faturamento': 49326, 'despesas': 18862},
{'ano_receita': 2024, 'mes_receita': '9', 'faturamento': 19043, 'despesas': 48517},
{'ano_receita': 2024, 'mes_receita': '10', 'faturamento': 24464, 'despesas': 24215},
{'ano_receita': 2024, 'mes_receita': '11', 'faturamento': 11635, 'despesas': 8190},
{'ano_receita': 2024, 'mes_receita': '12', 'faturamento': 39303, 'despesas': 14418}
]

#Uma opção de saída

#Crie um menu que onde seja possível fazer as seguintes opções:
def menu():
while True:
print(" - - - - - MENU LOJINHA - - - - - ")
print("1. Novo registro")
print("2. Calcular receita por ano")
print("3. Calcular receita geral")
print("0. Sair do menu")

opt = input("Escolha a opção desejada: ")
print("A opção escolhida foi ", opt)

if opt == "1":
adicionar_registro()
elif opt == "2":
calcular_receita()
elif opt == "3":
calcular_receita_geral()
elif opt == "0":
print("Encerramos o programa! Volte sempre.")
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

acho que precisa ter um break aqui para encerrar o programa

else: ##Adicione uma condição para caso o usuário não digite uma opção válida no menu.
print("Você não selecionou nenhuma opção válida.")
break
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

esse break aqui está encerrando seu programa depois a execução de uma das opções do menu


def adicionar_registro(): #Adicionar um novo registro , contendo todos os dados necessários, seguindo o modelo dos registros do dataset
ano_receita = int(input("Digite o ano que deseja verificar: "))
mes_receita = input("Digite o mês que deseja verificar: ")
faturamento = int(input("Adicione o lucro do mês correspondente: "))
despesas = int(input("Digite as despesas do mês correspondente: "))

novo_registro = { #adicionar dicionario
"ano_receita": ano_receita,
"mes_receita": mes_receita,
"faturamento": faturamento,
"despesas": despesas
}

print(f"O novo registro é {novo_registro}")

#adicionando o novo registro na memória da lista.
dataset.append(novo_registro)
print(dataset)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tente evitar mostrar todo o dataset depois de adicionar um registro. Afinal, não sabemos quantos registros podem conter em um dataset então printa-los pode poluir a saída do terminal com dados difíceis de se ler.

Uma dica: pode substituir por print("Registro adicionado com sucesso!")


def calcular_receita(): #calcular receita geral do ano do usuário e também exibir qual mês teve maior lucro e qual teve maior gasto
ano = int(input("Digite o ano que deseja calcular a receita: "))
valor_total = 0
maior_lucro = 0
maior_despesas = 0
mes_lucro = 0
mes_gasto = 0

#criar mais duas variaveis: dizer qual foi o mes, duas variaveis, uma pra dizer qual foi a mes que teve maior lucro e a que teve maior gasto

for item in dataset: #convertendo o input pro elemento que o usuário quer verificar

if ano == item.get("ano_receita"):
receita = item.get("faturamento") - item.get("despesas")
valor_total += receita #nos registros encontrados, calcular diferença entre lucro e gasto no ano > exibir resultado OK

if maior_lucro < receita: #exibir qual foi o mês que teve mais lucro e o que teve mais despesa
maior_lucro = receita # encontrando o maior lucro
mes_lucro = item.get("mes_receita") # convertendo o valor do maior lucro pra encontrar o mês em que ele foi encontrado.

if maior_despesas > receita:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

mas queremos apenas a maior despesa. Certo? Dessa forma está comparando com a receita e não apenas com a despesa.

maior_despesas = receita
mes_gasto = item.get("mes_receita")

print(f"A diferença entre o lucro e o gasto do {ano} é de {valor_total}")
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

na verdade é: a soma das diferenças entre o lucro e as despesas é: certo?

print(f"No ano de {ano} o mês de maior lucro foi {mes_lucro} e o mês de maior despesa foi {mes_gasto}")

def calcular_receita_geral(): #Mostrar qual ano teve a melhor receita e qual teve a pior

ano_maior_lucro = 0
ano_menor_lucro = 0
receita_maior = 0
ano_menor_lucro = 0
ano_melhor_lucro = 0

for item in dataset:

if item.get("ano_receita"):
lucro_liquido = item.get("faturamento") - item.get("despesas")
receita_maior += lucro_liquido

if lucro_liquido > ano_maior_lucro:
ano_maior_lucro = lucro_liquido
ano_melhor_lucro = item.get("ano_receita")

if lucro_liquido < ano_menor_lucro:
ano_menor_lucro = lucro_liquido
ano_pior_lucro = item.get("ano_receita")
Comment on lines +124 to +134
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

não é exatamente assim que funciona. Mas parabéns por tentar <3


print(f"O {ano_melhor_lucro} foi o ano de maior lucro até a presente data. E o ano {ano_pior_lucro} foi o de pior lucro.")

menu()
82 changes: 82 additions & 0 deletions exercicios/para-sala/lojinha.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
dataset = [
{'ano': 2022, 'mes': '1', 'lucro': 21003, 'gastos': 18600},
{'ano': 2022, 'mes': '2', 'lucro': 31717, 'gastos': 54851},
{'ano': 2022, 'mes': '3', 'lucro': 12571, 'gastos': 44701},
{'ano': 2022, 'mes': '4', 'lucro': 23775, 'gastos': 51092},
{'ano': 2022, 'mes': '5', 'lucro': 13251, 'gastos': 15321},
{'ano': 2022, 'mes': '6', 'lucro': 44903, 'gastos': 47597},
{'ano': 2022, 'mes': '7', 'lucro': 15476, 'gastos': 54529},
{'ano': 2022, 'mes': '8', 'lucro': 27346, 'gastos': 15365},
{'ano': 2022, 'mes': '9', 'lucro': 21968, 'gastos': 22234},
{'ano': 2022, 'mes': '10', 'lucro': 48833, 'gastos': 54157},
{'ano': 2022, 'mes': '11', 'lucro': 23418, 'gastos': 22423},
{'ano': 2022, 'mes': '12', 'lucro': 38790, 'gastos': 26672},
{'ano': 2023, 'mes': '1', 'lucro': 48187, 'gastos': 11384},
{'ano': 2023, 'mes': '2', 'lucro': 16137, 'gastos': 49848},
{'ano': 2023, 'mes': '3', 'lucro': 35136, 'gastos': 58523},
{'ano': 2023, 'mes': '4', 'lucro': 48703, 'gastos': 15792},
{'ano': 2023, 'mes': '5', 'lucro': 28860, 'gastos': 33990},
{'ano': 2023, 'mes': '6', 'lucro': 16293, 'gastos': 11151},
{'ano': 2023, 'mes': '7', 'lucro': 10136, 'gastos': 23093},
{'ano': 2023, 'mes': '8', 'lucro': 11298, 'gastos': 27107},
{'ano': 2023, 'mes': '9', 'lucro': 32300, 'gastos': 26678},
{'ano': 2023, 'mes': '10', 'lucro': 16655, 'gastos': 29369},
{'ano': 2023, 'mes': '11', 'lucro': 43447, 'gastos': 44161},
{'ano': 2023, 'mes': '12', 'lucro': 22841, 'gastos': 36748},
{'ano': 2024, 'mes': '1', 'lucro': 41066, 'gastos': 34235},
{'ano': 2024, 'mes': '2', 'lucro': 38245, 'gastos': 24730},
{'ano': 2024, 'mes': '3', 'lucro': 41615, 'gastos': 10681},
{'ano': 2024, 'mes': '4', 'lucro': 44559, 'gastos': 14573},
{'ano': 2024, 'mes': '5', 'lucro': 18150, 'gastos': 7673},
{'ano': 2024, 'mes': '6', 'lucro': 10824, 'gastos': 12598},
{'ano': 2024, 'mes': '7', 'lucro': 11844, 'gastos': 58096},
{'ano': 2024, 'mes': '8', 'lucro': 38085, 'gastos': 20842},
{'ano': 2024, 'mes': '9', 'lucro': 35128, 'gastos': 21076},
{'ano': 2024, 'mes': '10', 'lucro': 42366, 'gastos': 24859},
{'ano': 2024, 'mes': '11', 'lucro': 19202, 'gastos': 41544},
{'ano': 2024, 'mes': '12', 'lucro': 25698, 'gastos': 51182},
]

def menu():
print("------- MENU LOJINHA -------")
print("Adicionar novo registro - 1")
print("Calcular faturamento - 2")

opt = input("Digite a opção desejada: ")
print("A opção escolhida foi ", opt)

if opt == "1":
adicionar_registro()
elif opt == "2":
mostrar_receita()

def mostrar_receita():
mes = input("Digite o mês que gostaria saber a receita: ")
valor_total = 0

for el in dataset:
mes_el = el.get("mes")
if mes_el == mes:
receita = el.get("lucros") - el.get("gastos")
valor_total += receita

print(valor_total)

def adicionar_registro():
ano = int(input("Digite o ano correspondente: "))
mes = input("Digite o mês correspondente: ")
lucro = int(input("Digite o lucro neste mês: "))
gastos = int(input("Digite os gastos deste mês: "))

novo_registro = {
"ano": ano,
"mes": mes,
"lucro": lucro,
"gastos": gastos
}

dataset.append(novo_registro)

print(dataset)

menu()