Olá, Luiz Fernando. Como vai?
Sua solução para o sistema de cálculo de pedágio ficou excelente! O código está super limpo, direto e muito bem estruturado. A separação entre a entrada de dados, o processamento com a estrutura condicional e a saída formatada demonstra uma ótima consistência no seu jeito de programar.
A formatação de saída com R$ {pedagio:.2f} garantiu que o valor monetário seja exibido perfeitamente na tela com as duas casas decimais, o que é excelente para a experiência do usuário.
Para somar ao seu aprendizado e trazer novos pontos de reflexão para o fórum, preparei duas dicas: uma sobre a simplificação da sua lógica condicional e outra sobre um detalhe de validação muito importante para o mundo real.
1. Simplificando os Testes do elif
No seu bloco de decisão, você utilizou a seguinte regra:
elif 100 < distancia <= 200:
O Python aceita perfeitamente essa sintaxe encadeada, e ela está totalmente correta. Contudo, pensando na forma como o interpretador do Python lê o seu código (de cima para baixo), você pode simplificar essa validação.
Se o programa passou pelo primeiro if (distancia <= 100) e chegou até o elif, o Python já sabe, por garantia, que a distância é maior do que 100.
Portanto, você não precisa repetir o teste 100 < distancia. Pode escrever apenas:
elif distancia <= 200:
O resultado prático na execução será exatamente o mesmo, mas o seu código ganha em legibilidade e o sistema faz um teste lógico a menos.
2. Dica de Segurança: Evitando Distâncias Negativas
Como você tem se preocupado bastante com a validação de dados em outros exercícios, um cenário que pode acontecer nesse sistema é o usuário digitar um valor negativo por engano (por exemplo, -50).
No formato atual do código, se a distância for -50, a condição distancia <= 100 será considerada verdadeira, e o programa dirá que o valor do pedágio é R$ 10.00.
Para blindar o seu código contra esse tipo de bug, podemos aplicar uma cláusula de guarda para verificar se a distância é válida antes de calcular o pedágio. Veja como o fluxo fica protegido:
distancia = float(input("Informe a distância percorrida em km: "))
# Validação: distância não pode ser zero ou negativa
if distancia <= 0:
print("Erro: A distância percorrida deve ser um valor maior que zero.")
else:
print("\n--- CÁLCULO DE PEDÁGIO ---------------------------------")
# Com a garantia de que o número é positivo, fazemos a checagem dos limites
if distancia <= 100:
pedagio = 10.00
elif distancia <= 200:
pedagio = 20.00
else:
pedagio = 30.00
print(f"O valor do pedágio é: R$ {pedagio:.2f}")
print("--------------------------------------------------------")
Parabéns por manter o excelente ritmo de estudos e por compartilhar códigos sempre tão organizados e fáceis de ler aqui na nossa comunidade!
Espero que possa ter lhe ajudado!