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

Uma coisa que eu quis fazer diferente foi separar o cálculo em duas partes independentes: primeiro decido a taxa só pela distância, sem pensar em chuva nenhuma. Só depois, com esse valor já pronto, eu verifico se chove ou não e decido se soma o adicional. Achei que separar dessa forma deixa mais fácil de entender cada regra isoladamente, em vez de misturar tudo numa condição só.

**Algoritmo em linguagem natural **

Perguntar a distância até o cliente, em km.

Perguntar se está chovendo (sim ou não).

Definir a taxa base observando em qual faixa a distância se encaixa:

Até 5 km → R$ 5,00

Entre 5 e 10 km → R$ 8,00

Acima de 10 km → R$ 10,00

Depois de já ter a taxa base definida, checar se está chovendo. Se estiver, somar R$ 2,00 a essa taxa.

Mostrar o valor final da entrega.

Código em Python

def calcular_taxa_base(distancia):
if distancia <= 5:
return 5
if distancia <= 10:
return 8
return 10

distancia_km = float(input("Qual a distancia da entrega (em km)? "))
esta_chovendo = input("Esta chovendo? (sim/nao): ") == "sim"

taxa_base = calcular_taxa_base(distancia_km)

if esta_chovendo:
taxa_final = taxa_base + 2
else:
taxa_final = taxa_base

print(f"Taxa de entrega: R$ {taxa_final:.2f}")

Coloquei o cálculo da distância numa função separada de propósito assim, se um dia a empresa mudar só as faixas de km (por exemplo, criar uma faixa nova pra mais de 20 km), dá pra mexer só ali dentro, sem bagunçar o resto do código que trata da chuva.

1 resposta

Olá, Gusttavo! Como vai?

Parabéns pela resolução da atividade!

Vi que você explorou a função em Python para organizar o cálculo da taxa de entrega, utilizou muito bem a separação de responsabilidades para tratar distância e chuva de forma independente e ainda compreendeu a importância da condicional clara para deixar cada regra isolada e fácil de entender.

Uma dica interessante para o futuro é expandir a lógica para incluir novas faixas de distância sem alterar o restante do código. Assim:

def calcular_taxa_base(distancia):
    if distancia <= 5:
        return 5
    elif distancia <= 10:
        return 8
    elif distancia <= 20:
        return 12
    else:
        return 15

Isso faz com que o programa seja mais flexível e preparado para mudanças nas regras da empresa.

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

  • Usar dicionários: mapear faixas de distância para valores de taxa.
  • Encapsular toda a lógica em uma função principal: para reutilizar em diferentes cenários de cálculo.
  • Adicionar validação de entrada: garantir que a distância seja positiva e que a resposta sobre chuva seja válida.

Continue postando as suas soluções! Além de ganhar pontos de XP na plataforma, você pode ajudar outros estudantes no fórum.

Ah, uma pergunta: o que você acha mais interessante evoluir neste código, criar um dicionário para mapear faixas de distância ou encapsular toda a lógica em uma função principal para reutilizar em outros sistemas de entrega?

Abraço e bons estudos!

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