Olá, Luísa. Como vai?
Excelente contribuição! É fantástico ver como você evoluiu a estrutura do seu código. Você começou com um script linear simples e depois o transformou em um programa totalmente estruturado em funções, utilizando boas práticas avançadas como tratamento de exceções com try/except, laço de repetição para validação e até mesmo type hinting (-> float).
A divisão que você fez separa muito bem as responsabilidades do software: uma função cuida apenas da entrada e validação dos dados (obter_distancia), outra cuida puramente da regra de negócio (calcular_pedagio) e uma terceira orquestra a execução (executar_sistema). Isso deixa o código limpo, testável e fácil de manter.
Para agregar ainda mais valor ao seu projeto, quero destacar dois pontos interessantes sobre o seu código e deixar uma sugestão de melhoria:
1. Tratamento de strings e erros
A sua estratégia de usar .replace(",", ".") é uma ótima prática de experiência do usuário (UX), pois impede que o programa quebre caso a pessoa digite o quilômetro usando a vírgula como separador decimal, que é o padrão brasileiro.
2. Ajuste na indentação do primeiro script
No primeiro trecho de código que você postou, a estrutura condicional acabou ficando na mesma linha que a conversão da variável por conta da formatação do fórum:
quilometros = float(entrada)if quilometros <= 100:
Para que ele funcione sem erros de sintaxe, lembramos que a quebra de linha e a indentação são obrigatórias em Python:
quilometros = float(entrada)
if quilometros <= 100:
preco = 10.00
Sugestão de melhoria: Consistência nos intervalos
Na sua função calcular_pedagio, você usou operadores que criam os seguintes intervalos:
- Menor ou igual a 100: R$ 10.00
- Maior que 100 e menor que 200: R$ 20.00
- Maior ou igual a 200: R$ 30.00
Caso o objetivo do exercício seja incluir o valor exato de 200 no segundo bloco (ou seja, até 200), uma boa prática seria padronizar o operador utilizando o menor ou igual (<=) também no elif, dessa forma:
def calcular_pedagio(distancia: float) -> float:
if distancia <= 100:
return 10.00
elif distancia <= 200:
return 20.00
return 30.00
Parabéns pela organização e pela iniciativa de refatorar o código criando funções. Esse é o caminho ideal para se tornar uma desenvolvedora Python de destaque!
Espero que possa ter lhe ajudado!