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

python condicionales: tarifa de trasnporte por edad y distancia

Un sistema de transporte cobra según la edad del pasajero y la distancia recorrida:

  • Menores de 6 años: Viajan gratis.
  • De 6 a 18 años:
    Hasta 20 km: $1.50
    Más de 20 km: $2.50
  • Mayores de 18:
    Hasta 20 km: $2.50
    Más de 20 km: $4.00

Crea un programa que reciba la edad y distancia, y muestre el valor a pagar.

try:
    edad = int(input('Escribe la edad del pasajero:  '))
    distancia = float(input('Ingresa la distancia a recorrer en kilómetros:  '))

    pago_1 = ('Puede viajar gratis')
    pago_2 = ('El valor de su pasaje es de: $1.50')
    pago_3 = ('El valor de su pasaje es de: $2.50')
    pago_4 = ('El valor de su pasaje es de: $4.00')

    if edad < 6:
        print(f'{pago_1}')
    elif edad >= 6 and edad <= 18:
        if distancia <= 20:
            print(f'{pago_2}')
        else:
            print(f'{pago_3}')
    elif edad > 18:
        if distancia <= 20:
            print(f'{pago_3}')
        else:
            print(f'{pago_4}')
except ValueError:
    print('Error al ingresar datos, recuerde que deben ser solo numero.')                            
1 respuesta

Hola Estudiante, ¿cómo estás?

Parece que ya tienes un buen comienzo para tu programa que calcula la tarifa de transporte basada en la edad y la distancia. Tu lógica condicional parece estar bien estructurada. Sin embargo, aquí hay algunas sugerencias para asegurarte de que tu código sea lo más claro y eficiente posible:

  1. Simplificación de las condiciones: Puedes simplificar las condiciones eliminando la necesidad de usar and en elif edad >= 6 and edad <= 18: ya que elif 6 <= edad <= 18: hace lo mismo de manera más concisa.

  2. Mensajes de pago: Aunque no es necesario, puedes simplificar el código eliminando las variables pago_1, pago_2, etc., y simplemente imprimir los mensajes directamente en cada condición. Sin embargo, si prefieres mantenerlos por claridad, eso también está bien.

  3. Manejo de excepciones: Tu manejo de excepciones con try y except es una buena práctica para asegurarte de que el usuario ingrese valores numéricos válidos.

Aquí tienes una versión ligeramente modificada de tu código con las sugerencias mencionadas:

try:
    edad = int(input('Escribe la edad del pasajero:  '))
    distancia = float(input('Ingresa la distancia a recorrer en kilómetros:  '))

    if edad < 6:
        print('Puede viajar gratis')
    elif 6 <= edad <= 18:
        if distancia <= 20:
            print('El valor de su pasaje es de: $1.50')
        else:
            print('El valor de su pasaje es de: $2.50')
    else:  # Esto cubre el caso de mayores de 18
        if distancia <= 20:
            print('El valor de su pasaje es de: $2.50')
        else:
            print('El valor de su pasaje es de: $4.00')
except ValueError:
    print('Error al ingresar datos, recuerde que deben ser solo números.')

Espero que estas sugerencias te sean útiles. ¡Espero haber ayudado y buenos estudios!