Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Sistema de tarifas

import sys

try:
edad = int(input("Ingrese la edad del pasajero: "))
if (edad < 0):
raise ValueError("La edad no puede ser negativa.")
if (edad < 6):
print("Viaja gratis")
sys.exit(0)
distancia = int(input("Ingrese la distancia a recorrer: "))
if (distancia < 0):
raise ValueError("La distancia no puede ser negativa.")
except ValueError as e:
print(f"Error de entrada: {e}")
sys.exit(1)

texto_inicial = "El precio de la tarifa es $"
if edad <= 18:
print(texto_inicial, "1.50") if distancia <= 20.0 else print(texto_inicial, "2.50")
else:
print(texto_inicial, "2.50") if distancia <= 20.0 else print(texto_inicial, "4.00")

1 respuesta

Hola Gabriel, espero que estés bien

Tu código parece estar bastante bien estructurado para resolver el problema del sistema de tarifas basado en la edad y la distancia. Sin embargo, hay un par de cosas que podrías considerar para mejorarlo o asegurarte de que funcione como esperas:

  1. Validación de entrada: Ya estás manejando entradas negativas con una excepción, lo cual es excelente. Asegúrate de que el programa también maneje entradas no numéricas adecuadamente, aunque parece que ya está cubierto con el ValueError.

  2. Lógica de tarifas: La lógica que has implementado para calcular la tarifa parece correcta y sigue las reglas proporcionadas en el contexto. Por ejemplo:

    • Si la edad es menor de 6, el pasajero viaja gratis.
    • Si la edad está entre 6 y 18 años, el costo es de $1.50 para distancias hasta 20 km y $2.50 para más de 20 km.
    • Para mayores de 18 años, el costo es de $2.50 para distancias hasta 20 km y $4.00 para más de 20 km.
  3. Uso de sys.exit: Estás usando sys.exit para terminar el programa después de imprimir el mensaje para los menores de 6 años y en caso de error, lo cual es una buena práctica para evitar que el programa continúe ejecutándose innecesariamente.

  4. Mejoras de legibilidad: Podrías considerar usar funciones para manejar diferentes partes del código, lo que puede hacer que sea más fácil de leer y mantener. Por ejemplo, una función para calcular la tarifa y otra para manejar la entrada del usuario.

En resumen, tu código parece cumplir con los requisitos del ejercicio. Siempre es una buena idea probar con diferentes entradas para asegurarte de que todas las condiciones funcionen correctamente.

Espero haber ayudado y buenos estudios!