Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Desafio: Calculando valor da entrega

distancia = int(input("informe a distância em km: "))
chuva = input("Está chovendo ? Se sim responda: (True), se não (False): ")

if distancia == 5 and chuva == "True":
    print("A taxa é de R$ 7,00")
elif distancia == 5:
    print("A taxa é de R$ 5,00")
elif distancia <= 10 and chuva == "True":
    print("A taxa é de R$ 10,00")
elif distancia <= 10:
    print("A taxa é de R$ 8,00")
elif distancia > 10 and chuva == "True":
    print("A taxa é de R$ 12,00")
elif distancia > 10:
    print("A taxa é de R$ 10,00")
1 resposta
solução!

Olá, João, como vai?

Analisei seu código e a lógica aplicada está próxima da proposta, porém há alguns pontos de ajuste nas condições de distância. A primeira verificação considera apenas distancia == 5, quando a regra envolve entregas até 5 km. Dessa forma, distâncias menores que 5 km acabam sendo enquadradas incorretamente nos blocos seguintes. Além disso, não há necessidade de criar um bloco exclusivo para distância igual a 5, já que ela faz parte do primeiro intervalo.

Uma forma de organizar a lógica é separar primeiro as faixas de distância e depois aplicar o acréscimo da chuva, evitando repetição de condições e cobrindo todos os cenários.

Por exemplo:

distancia = int(input("Informe a distância em km: "))
chuva = input("Está chovendo? (True/False): ")

if distancia <= 5:
    taxa = 5
elif distancia <= 10:
    taxa = 8
else:
    taxa = 10

if chuva == "True":
    taxa += 2

print(f"A taxa é de R$ {taxa},00")

Com essa estrutura, distâncias como 3 km, 5 km, 7 km ou 12 km passam a ser tratadas corretamente, e o adicional de chuva é aplicado apenas uma vez sobre a taxa base.

Qualquer dúvida ou evolução do exercício, fique à vontade para compartilhar. O fórum está à disposição para acompanhar seu desenvolvimento.

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