Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
2
respostas

[Projeto] Calculando pedágio

try:
  distancia_percorrida = float(input("Digite a distância percorrida (em km): "))

  if distancia_percorrida <= 100 :
    print("Valor do pedágio: R$ 10,00")
  elif distancia_percorrida > 100  and  distancia_percorrida <= 200:
    print("Valor do pedágio: R$ 20,00")
  elif distancia_percorrida > 200 :
    print("Valor do pedágio: R$ 30,00")  
except ValueError:
    print("Informe somente valores numéricos.")
2 respostas
solução!

Olá, Marcelo! Parabéns por concluir o projeto Calculando pedágio.

A sua solução está muito bem desenvolvida. A escolha do tipo float para a distância é excelente, pois permite registrar trajetos com precisão decimal. A estrutura escolhida atende aos requisitos do problema, e a presença do tratamento para ValueError protege a aplicação contra entradas inválidas de texto.

Como ponto de observação técnica e simplificação, note que no primeiro elif você utilizou a condição distancia_percorrida > 100 and distancia_percorrida <= 200. Como o Python lê o código em ordem e o primeiro if já eliminou todos os números menores ou iguais a 100, você não precisa repetir a checagem distancia_percorrida > 100. Escrever apenas elif distancia_percorrida <= 200: já é suficiente e deixa a leitura do código mais limpa.

Veja como ficaria essa simplificação natural:

try:
  distancia_percorrida = float(input("Digite a distância percorrida (em km): "))

  if distancia_percorrida <= 100:
    print("Valor do pedágio: R$ 10,00")
  elif distancia_percorrida <= 200:
    # O Python só chega aqui se a distância for maior que 100
    print("Valor do pedágio: R$ 20,00")
  else:
    # O else assume tudo que sobrou (maior que 200)
    print("Valor do pedágio: R$ 30,00")  
except ValueError:
  print("Informe somente valores numéricos.")

Essa forma de estruturar aproveita o comportamento em cascata das condicionais de maneira direta e objetiva.

Na sua visão, você acredita que utilizar o else no final para a última faixa ajuda a tornar o código mais limpo do que criar um último elif com uma condição explícita?

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

As duas abordagens, resolvem o problema, quanto a clareza eu gosto de deixar regras bem explicitas, mas como jpa era tarde só queria terminar tendo clareza do meu pensamento, não pensei em otimizar nada, só deixar a regra clara e funcionando.