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.