Como calcular o preço final de um produto aplicando um desconto, caso um cupom válido seja fornecido
Este código Python foi desenvolvido para calcular o preço final de um produto aplicando um desconto, caso um cupom válido seja fornecido. Vamos detalhar cada parte:
Dicionário de Descontos
Python:
descontos = {
"DESCONTO10": 0.10,
"DESCONTO20": 0.20,
"SEM_DESCONTO": 0.00
}
Aqui, temos um dicionário chamado descontos
. Um dicionário é uma estrutura de dados que armazena pares de "chave-valor". Neste caso:
- As chaves são os nomes dos cupons de desconto (strings como
"DESCONTO10"
,"DESCONTO20"
,"SEM_DESCONTO"
). - Os valores associados a essas chaves são as respectivas taxas de desconto (números de ponto flutuante, como
0.10
para 10%,0.20
para 20%, e0.00
para nenhum desconto).
Este dicionário permite que o programa consulte rapidamente qual o percentual de desconto para cada cupom.
Entrada do Usuário
Python:
preco = float(input().strip())
cupom = input().strip()
Nesta seção, o programa solicita informações ao usuário:
preco = float(input().strip())
: O programa pede ao usuário para digitar o preço original do produto.input()
: Lê a entrada do usuário como uma string..strip()
: Remove quaisquer espaços em branco extras do início ou do fim da string digitada pelo usuário. Isso garante que não haverá problemas caso o usuário digite um espaço acidentalmente.float()
: Converte a string resultante para um número de ponto flutuante (decimal), pois preços geralmente não são inteiros.cupom = input().strip()
: De forma semelhante, o programa solicita ao usuário que digite o nome do cupom de desconto. A entrada é lida como string e os espaços em branco são removidos.
Aplicação do Desconto
Python:
if cupom in descontos:
preco_final = preco * (1 - descontos[cupom])
else:
preco_final = preco
Esta é a lógica central do código, onde o desconto é aplicado:
if cupom in descontos:
: Esta linha verifica se a string digitada pelo usuário (cupom
) existe como uma chave no dicionáriodescontos
.- Se o cupom for válido (ou seja, se a chave existir no dicionário), o bloco de código dentro do
if
é executado. preco_final = preco * (1 - descontos[cupom])
: Se o cupom for válido, o preço final é calculado.descontos[cupom]
: Acessa o valor de desconto correspondente à chave docupom
no dicionário. Por exemplo, secupom
for"DESCONTO10"
,descontos[cupom]
será0.10
.1 - descontos[cupom]
: Calcula o fator de multiplicação para o preço. Se o desconto for de 10% (0.10), o fator será1 - 0.10 = 0.90
. Multiplicar o preço por0.90
é o mesmo que aplicar 10% de desconto.preco * (fator de multiplicação)
: O preço original é multiplicado por este fator para obter o preço com desconto.else:
: Se a condição doif
for falsa (ou seja, se ocupom
digitado pelo usuário não for encontrado no dicionáriodescontos
), o bloco de código dentro doelse
é executado.preco_final = preco
: Neste caso, o cupom é considerado inválido, e o preço final permanece igual ao preço original, sem desconto.
Exibição do Resultado
Python
print(f"{preco_final:.2f}")
Finalmente, esta linha exibe o resultado:
print()
: Imprime o valor na tela.f"{preco_final:.2f}"
: É uma f-string (string formatada).preco_final
: O valor da variávelpreco_final
é inserido na string.:.2f
: Este é um especificador de formato que garante que o número de ponto flutuante (preco_final
) será exibido com duas casas decimais, o que é ideal para valores monetários.
Resumo do Fluxo
- O programa define os cupons e seus respectivos descontos.
- Pede ao usuário o preço do produto.
- Pede ao usuário o nome do cupom.
- Verifica se o cupom inserido é válido (está no dicionário de descontos).
- Se for válido, calcula o preço com desconto.
- Se não for válido, mantém o preço original.
- Imprime o preço final formatado com duas casas decimais.
Este código é um exemplo simples e eficaz de como usar dicionários para gerenciar dados e estruturas condicionais (if/else
) para implementar lógica de negócios em Python.