Hola Carlos, espero que estés bien
Tu código parece estar casi correcto, pero hay un pequeño detalle que podrías ajustar para que funcione según las reglas del ejercicio. En tu condición elif 6<edad<=18:, debería incluir a los niños de 6 años también. Para eso, podrías cambiarlo a elif 6<=edad<=18:. Aquí está el código corregido:
edad = int(input("Ingrese su edad: "))
distancia = float(input("Ingrese la distancia en kilómetros: "))
if edad < 6:
print("Viaje gratuito")
elif 6 <= edad <= 18:
if distancia <= 20:
print("Tarifa: $1.5")
else:
print("Tarifa: $2.50")
else:
if distancia <= 20:
print("Tarifa: $2.5")
else:
print("Tarifa: $4")
Con esta modificación, tu programa debería funcionar perfectamente de acuerdo con las reglas del sistema de tarifas. Espero que esto te ayude a entender mejor cómo funcionan las condiciones if, elif y else en Python.
Espero haber ayudado y buenos estudios!