Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

Sistema de tarifas de transporte por edad y distancia

Lo hice asi y
veo un problema

edad =int(input("Ingrese edad del pasajero en años: "));
distancia =float(input("Ingrese distancia a recorrer em (km): "));

if edad < 6:
print("Viaja gratis");
elif edad == 6 and edad <= 18:
if distancia <=20:
print(" Paga 1.50");
else:
print("Paga 2.50");
else:
if distancia ==20:
print("Pago 2.50");
else:
print("Pago 4.00");

2 respuestas

Hola Yanucelly, espero que estés bien

Parece que ya tienes una buena base para tu sistema de tarifas, pero hay un pequeño error en la lógica de tu código. El problema está en cómo se manejan las condiciones para las edades y las distancias. Vamos a ver cómo puedes corregirlo:

  1. En la condición elif edad == 6 and edad <= 18:, el operador == no es necesario. Deberías usar elif edad <= 18: para cubrir el rango de 6 a 18 años.

  2. En la sección para mayores de 18 años, la condición para la distancia debe ser corregida. Actualmente, tienes if distancia ==20: pero debería ser if distancia <= 20: para cubrir distancias de hasta 20 km.

Aquí tienes una versión corregida de tu código:

edad = int(input("Ingrese edad del pasajero en años: "))
distancia = float(input("Ingrese distancia a recorrer en (km): "))

if edad < 6:
    print("Viaja gratis")
elif edad <= 18:
    if distancia <= 20:
        print("Paga 1.50")
    else:
        print("Paga 2.50")
else:
    if distancia <= 20:
        print("Paga 2.50")
    else:
        print("Paga 4.00")

Espero que esta corrección solucione el problema que encontraste. ¡Espero haber ayudado y buenos estudios!

Hola

Esto que me dices que no es necesario, pero lo coloque asi ya que si coloco como me dices
if edad < 6:
print("Viaja gratis")
elif edad <= 18:
if distancia <= 20:
print("Paga 1.50")

    al colocar 5 que es < a 18 tambien es < 6 y toma la primera condicion

En la condición elif edad == 6 and edad <= 18:, el operador == no es necesario. Deberías usar elif edad <= 18: para cubrir el rango de 6 a 18 años.