Olá, Paulo. Como vai?
Sua solução apresenta um nível de sofisticação muito interessante! O uso de condicionais aninhadas em uma única linha (operador ternário encadeado) mostra que você já está explorando formas mais avançadas e concisas de escrever lógica em Python.
Além da lógica, você teve um cuidado especial com a formatação de saída, utilizando f-strings e o método replace para adaptar o padrão decimal americano (ponto) para o brasileiro (vírgula). Isso agrega muito valor à experiência do usuário final.
Para contribuir ainda mais com seu código, gostaria de sugerir alguns pontos de boas práticas e atenção:
- Tratamento de Limites: Notei que você utilizou
distancia < 100 e depois 100 < distancia. Se o usuário digitar exatamente 100, o seu código cairá no else final, resultando em R$ 30,00. Geralmente, em regras de negócio de pedágio, as faixas são inclusivas (ex: distancia <= 100). - Legibilidade vs Concisão: Embora o ternário em uma linha seja elegante, quando temos mais de duas condições, ele pode se tornar difícil de ler e manter. Em projetos maiores, o uso do
if/elif/else tradicional é preferível para facilitar a manutenção por outros desenvolvedores. - Formatação Monetária: Uma alternativa ao
replace é o uso da biblioteca nativa locale, que formata moedas automaticamente de acordo com a região configurada.
Veja uma sugestão de como estruturar esse código priorizando a clareza e corrigindo o intervalo do valor 100:
distancia = float(input("Digite a distância percorrida (em km): "))
if distancia <= 100:
valor_pedagio = 10.0
elif distancia <= 200:
valor_pedagio = 20.0
else:
valor_pedagio = 30.0
# Utilizando f-string para formatar com vírgula de forma simples
print(f"Valor do pedágio: R$ {valor_pedagio:,.2f}".replace(',', 'X').replace('.', ',').replace('X', '.'))
Dessa forma, os intervalos ficam claros:
- Até 100km: R$ 10,00
- De 101km até 200km: R$ 20,00
- Acima de 200km: R$ 30,00
Continue explorando essas formas reduzidas de escrita, pois elas são ótimas ferramentas para se ter no "cinto de utilidades" de um programador Python!
Espero que possa ter lhe ajudado!