Exercícios Resolvidos de Tuplas e dicionários

Ver Teoria

Enunciado

A conta do cartão de crédito de uma pessoa pode ser modelada por um dicionário com os campos saldo, com o saldo devedor da conta, transações, com o número de transações que gerou esse saldo, e média, com a média de gastos por transação. Escreva uma função compra, que recebe como parâmetros o dicionário com a conta e o valor da compra e retorna um novo dicionário para aquela conta, com o saldo devedor, número de transações e média de gastos atualizados.

Passo 1

Fala aí, peixe! A gente precisa escrever uma função que recebe um dicionário e retorna outro com algumas modificações… Então bora lá! Começa escrevendo o cabeçalho da função:

Com os parâmetros que também foram especificados pelo enunciado, ok?! A primeira coisa que a gente tem que fazer agora é uma cópia do dicionário recebido. Isso porque os dicionários são mutáveis, e se a gente editar esse dicionário, os efeitos vão surgir no item que foi passado por parâmetro também! E, apesar de ser útil nesse caso, não é isso que o enunciado quer… Tá escrito “um novo dicionário” ali! Então, bora pegar um cópia:

Show! Agora, a variável “conta” passou a armazenar uma cópia do dicionário que tinha antes. Agora, a gente pode editar sem medo… Começando pelo número de transações, que deve aumentar em 1, já que a gente fez uma compra (o nome da função, né).

Além disso, deve ser acrescentado na fatura o preço da nova compra do usuário, então bora somar o dado na chave “saldo”, assim como especificou o enunciado:

E, pra atualizar o último item, precisamos calcular a média. E a média é dada pelo saldo dividido pelo número de transações…

E não podemos esquecer de retornar nosso novo dicionário atualizado, ok?!

Passo 2

Cara, o enunciado não tá mandando a gente fazer nenhum teste, mas é sempre bom fazer… Se estiver funcionando certinho, aí a gente pode apagar o que a gente escreveu. Bora criar um dicionário com os elementos zerados:

E agora, vamos importar o módulo random e fazer um loop adicionando compras aleatórias na nossa conta.

Depois de executar, o resultado pareceu estar funcionando de boas, cara!

E, com isso, a gente conclui que nossa função tá funcionando. Vamos apagar nossos testes e entregar só a função, assim como o enunciado pediu, ok?! Valeuuu

Resposta