CSE 111: Programando com funções

Exemplo de Solução

O seguinte programa mostra uma maneira de resolver este problema. Contudo, essa não é a única forma possível de solucioná-lo.


# Copyright 2020, Brigham Young University-Idaho. Todos os direitos reservados.

"""
Você trabalha para uma loja de varejo que deseja aumentar as vendas
às terças e quartas-feiras, que são os dias com menor movimento.
Nessas datas, se o subtotal da compra de um cliente for superior a R$50,
a loja aplicará um desconto de 10% na compra.
"""

# Importa o módulo datetime para que
# ele possa ser usado neste programa.
from datetime import datetime

# A taxa de desconto é 10% e a taxa de imposto sobre vendas é 6%.
TAXA_DESCONTO = 0.10
TAXA_IMPOSTO = 0.06

subtotal = 0

print("Digite o preço e a quantidade de cada item.")
preco = 1
while preco != 0:
    # Recebe o preço do usuário.
    preco = float(input("Digite o preço: "))
    if preco != 0:
        # Recebe a quantidade do usuário.
        quantidade = int(input("Digite a quantidade: "))

        subtotal += preco * quantidade

        # Exibe uma linha em branco.
        print()

# Arredonda o subtotal para duas casas decimais
# e exibe o subtotal.
subtotal = round(subtotal, 2)
print(f"Subtotal: R${subtotal:.2f}")
print()

# Obtém a data e hora atuais do sistema operacional.
data_hora_atual = datetime.now()

# Obtém o dia da semana (0 = segunda, 1 = terça, ..., 6 = domingo).
dia_semana = data_hora_atual.weekday()

# Se o subtotal for maior que 50 e hoje for terça (1) ou quarta (2),
# calcula o valor do desconto.
if dia_semana == 1 or dia_semana == 2:
    if subtotal < 50:
        faltando = 50 - subtotal
        print("Para receber o desconto, adicione"
              f" R${faltando:.2f} ao seu pedido.")
    else:
        desconto = round(subtotal * TAXA_DESCONTO, 2)
        print(f"Valor do desconto: R${desconto:.2f}")
        subtotal -= desconto

# Calcula o imposto sobre vendas (após o desconto).
imposto = round(subtotal * TAXA_IMPOSTO, 2)
print(f"Valor do imposto sobre vendas: R${imposto:.2f}")

# Calcula o total somando o subtotal com o imposto.
total = subtotal + imposto

# Exibe o total para o cliente.
print(f"Total: R${total:.2f}")