Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

[Desafio] Calculando valor da entrega

Utilizei um loop while True com try/except para impedir que o sistema quebre caso o usuário digite texto em vez de números ou insira uma distância negativa.
A estrutura if/elif/else organiza de forma clara as faixas de distância. O computador avalia a condição de menor para maior, garantindo que o valor seja atribuído corretamente.
Usei uma forma simplificada (2.00 if chovendo else 0.00) para calcular o adicional, deixando o código mais limpo e legível.
Feedback ao Usuário: Em vez de apenas exibir o valor final, o algoritmo detalha o que compõe aquele preço (taxa base + possível adicional de chuva). Isso transmite transparência e confiança para o cliente, pois ele entende exatamente por que está pagando aquele valor.

def calcular_entrega():
    print("--- Sistema de Cálculo de Taxa de Entrega ---")

    # 1. Entrada com Validação
    
    while True:
        try:
            distancia = float(input("Informe a distância da entrega em km: "))
            if distancia >= 0:
                break
            print("Erro: A distância não pode ser negativa.")
        except ValueError:
            print("Erro: Digite um valor numérico válido.")

    chovendo = input("Está chovendo no momento? (s/n): ").lower() == 's'

# 2. Processamento (Definição da taxa base)

    if distancia <= 5:
        taxa_base = 5.00
    elif distancia <= 10:
        taxa_base = 8.00
    else:
        taxa_base = 10.00
    
# Cálculo do adicional

    adicional_chuva = 2.00 if chovendo else 0.00
    valor_final = taxa_base + adicional_chuva

# 3. Saída

    print("\n--- Resumo do Pedido ---")
    print(f"Taxa Base: R$ {taxa_base:.2f}")
    if chovendo:
        print(f"Adicional de chuva: R$ {adicional_chuva:.2f}")
    print(f"Valor total da entrega: R$ {valor_final:.2f}")

# Executar o sistema

calcular_entrega()
1 resposta

Olá, Eugênio! Como vai?

Parabéns pela resolução da atividade!

Vi que você explorou o loop while True com try/except para validar entradas com Python, utilizou muito bem o if/elif/else para organizar as faixas de distância e ainda compreendeu a importância da expressão condicional simplificada para calcular o adicional de chuva de forma clara e legível.

Continue postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Se quiser aprofundar ainda mais, algumas boas práticas são:

  • Refatoração: encapsular o cálculo da taxa em funções auxiliares para facilitar manutenção.
  • Feedback detalhado: incluir mensagens mais explicativas sobre como o valor foi calculado, reforçando a transparência para o cliente.
  • Extensibilidade: permitir que novas regras de cobrança (como promoções ou horários especiais) sejam adicionadas sem alterar a lógica principal.

Alguns materiais podem estar em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

Ah, uma pergunta: você prefere continuar praticando com exemplos de validação e cálculo de taxas para consolidar fundamentos ou acha mais interessante avançar para sistemas completos de delivery que integrem promoções, histórico de pedidos e relatórios?

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!